Technisch es sollte keine Wirkung haben. Aber Sie müssen bedenken, dass der übergebene Wert als Minimum verwendet wird , und kein absolutes, daher steht es dem System frei, stattdessen das kleinstmögliche Intervall zu verwenden.
Ich wollte nur auf den hier verwendeten Zeitbefehl hinweisen. Sie sollten /usr/bin/time
verwenden statt nur time
Befehl, wenn Sie Ihren Programmspeicher, Ihre CPU und Ihren Zeitstatus überprüfen möchten. Wenn Sie die Zeit ohne vollständigen Pfad aufrufen, wird der integrierte Zeitbefehl aufgerufen. Sehen Sie sich den Unterschied an.
ohne vollständigen Pfad:
# time -v ./a.out
-bash: -v: command not found
real 0m0.001s
user 0m0.000s
sys 0m0.001s
mit vollständigem Pfad:
# /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
Verwenden Sie man time
für /usr/bin/time
Handbuch und verwenden Sie help time
für eingebaute Zeitinformationen.
Ich müsste mir die Quelle ansehen, um sicherzugehen, aber ich vermute, dass es nicht ganz "keine Wirkung" ist, aber es ist wahrscheinlich immer noch weniger als usleep(1)
- Es gibt immer noch den Funktionsaufruf-Overhead, der in einer engen Schleife messbar sein kann, selbst wenn der Bibliotheksaufruf einfach seine Argumente überprüft und sofort zurückkehrt, wodurch der üblichere Prozess des Einrichtens eines Timers/Rückrufs und des Aufrufs des Schedulers vermieden wird.