Técnicamente no debería tener ningún efecto. Pero debe recordar que el valor pasado se usa como un 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 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 de su 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 ruta completa:
# 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
usa man time
para /usr/bin/time
manual y uso help time
para la información de tiempo incorporada.
Tendría que mirar la fuente para asegurarme, pero creo que no es del todo "sin efecto", pero probablemente aún sea menos de usleep(1)
- todavía existe la sobrecarga de la llamada a la función, que puede medirse en un ciclo cerrado, incluso si la llamada a la biblioteca simplemente verifica sus argumentos y regresa de inmediato, evitando el proceso más habitual de configurar un temporizador/devolución de llamada y llamar al programador.