time (Unix)
time
je příkaz k určení zdrojů využitých jiným programem. Implicitně vypíše dobu trvání programu nebo příkazu. Používá se v Unix a operačních systémech unixového typu (například Linux, FreeBSD, Mac OS a další).
Typ softwaru | standardní UNIXová utilita či příkaz |
---|---|
Některá data mohou pocházet z datové položky. |
Použití
Pro spuštění stačí jednoduše před libovolný příkaz zapsat time
, jako například:
$ time ls
Až se příkaz dokončí, time
vypíše, jak dlouho trvalo provedení příkazu ls
z hlediska uživatelského času procesoru, systémového času procesoru a v reálném čase. Výstupní formát se liší mezi různými verzemi příkazu. Některé vracejí další údaje, jako v tomto příkladu:
$ time host wikipedia.org
wikipedia.org has address 208.80.154.224
wikipedia.org has IPv6 address 2620:0:861:ed1a::1
wikipedia.org mail is handled by 10 mx1001.wikimedia.org.
wikipedia.org mail is handled by 50 mx2001.wikimedia.org.
real 0m0.024s
user 0m0.005s
sys 0m0.013s
time(1) může existovat jako samostatný program (například GNU time), nebo jako shell builtin (např. v tcsh nebo zsh).
Uživatelský čas a systémový čas
Celkový čas procesoru (CPU time) je kombinace množství času procesoru nebo procesorů strávených provedením nějaké akce a množství času, které strávil vykonáváním systémových volání pro jádra.
Reálný čas a čas procesoru
Termín „reálný čas“ (real time) v tomto kontextu odkazuje na uplynulý wall-clock time, jako kdybychom jej měřili pomocí stopek. Celkový čas procesoru (uživatelský + systémový čas) může být větší nebo menší než je tato hodnota. Je to dáno tím, že program může strávit nějaký čas čekáním a ne průběhem (ať už v uživatelském režimu nebo režimu systému). Proto bude čas procesoru menší než uplynulý reálný čas. Dalším důvodem rozdílu může být paralelní běh procesů na vícejádrových systémech. Zde bude čas procesoru větší než reálný čas.