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.