GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wirkung von usleep(0) in C++ unter Linux

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.


Linux
  1. Linux schneller booten

  2. Beispiele für Linux-Zeitbefehle

  3. So erhalten Sie die Verzeichnisgröße in Linux

  4. uptime-Befehlsbeispiele in Linux

  5. Linux-Prozesszustände

So verwenden Sie du Command unter Linux

Überprüfen Sie die Zeitzone in Linux

Beispiele für Linux-Datumsbefehle

Reduzieren Sie die PDF-Dateigröße unter Linux

Verstehen des Zeitbefehls in Linux

Linux-Ping:Zeitüberschreitung anzeigen