Saltar al contenido

Efecto de usleep (0) en C ++ en Linux

Solución:

Técnicamente no debería tener ningún efecto. Pero debe recordar que el valor pasado se utiliza como mínimo, y no un absoluto, por lo tanto, el sistema es libre de usar el intervalo más pequeño posible en su lugar.

Solo quería señalar sobre el comando de tiempo que se usa aquí. Deberías usar /usr/bin/time en lugar de solo time comando si desea verificar la memoria del programa, la CPU, la estadística de tiempo. Cuando llama al tiempo sin la ruta completa, se llama al comando de tiempo incorporado. Mira la diferencia.

sin camino completo:

# time -v ./a.out
-bash: -v: command not found

real    0m0.001s
user    0m0.000s
sys     0m0.001s

con ruta completa:

# /usr/bin/time -v ./a.out
Command being timed: "./a.out"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:10.87
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 220
Voluntary context switches: 10001
Involuntary context switches: 1
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

usar man time por /usr/bin/time manual y uso help time para obtener información de tiempo incorporada.

Tendría que mirar la fuente para asegurarme, pero supongo que no es del todo “sin efecto”, pero probablemente sea menos de usleep(1) – todavía existe la sobrecarga de la llamada a la función, que puede medirse en un bucle cerrado, incluso si la llamada a la biblioteca simplemente verifica sus argumentos y regresa inmediatamente, evitando el proceso más habitual de configurar un temporizador / devolución de llamada y llamar al programador.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *