GNU/Linux >> Znalost Linux >  >> Linux

Vliv usleep(0) v C++ na Linuxu

Technicky nemělo by to mít žádný účinek. Musíte si však pamatovat, že předaná hodnota se používá jako minimum , a ne absolutní, proto systém může místo toho použít nejmenší možný interval.


Jen jsem chtěl poukázat na zde použitý časový příkaz. Měli byste použít /usr/bin/time místo pouze time příkaz, pokud chcete zkontrolovat paměť programu, cpu, statistiku času. Když zavoláte čas bez úplné cesty, zavolá se vestavěný časový příkaz. Podívejte se na rozdíl.

bez úplné cesty:

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

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

s úplnou cestou:

# /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

použijte man time pro /usr/bin/time manuál a použijte help time pro vestavěné časové informace.


Musel bych se podívat na zdroj, abych se ujistil, ale odhaduji, že to není úplně "žádný efekt", ale pravděpodobně je to stále méně než usleep(1) - stále existuje režie volání funkce, kterou lze měřit v těsné smyčce, i když volání knihovny jednoduše zkontroluje své argumenty a okamžitě se vrátí, čímž se vyhne obvyklejšímu procesu nastavení časovače/zpětného volání a volání plánovače.


Linux
  1. Příklady příkazů času Linux

  2. Stavy procesu Linuxu

  3. Detekce Windows nebo Linuxu v C, C++

  1. sledovat velikost souboru v linuxu

  2. Nastavte systémové datum a čas pomocí C++ v Linuxu

  3. Alternativa k `memory.size()` v linuxu?

  1. Rychlejší spouštění Linuxu

  2. Jak získat velikost adresáře v Linuxu

  3. Místní čas Windows vs Linux?