it-swarm-eu.dev

Jak mohu časovat konkrétní příkaz?

(Linuxový ekvivalent TimeThis.exe)

Něco jako:

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.
71
ripper234

Zkuste pouze time místo timethis.

I když si uvědomte, že často existuje vestavěná verze Shell času a binární verze, která poskytne výsledky v různých formátech:

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

vs

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

Na rozdíl od vašeho programu „timethis“ získáte zpět tři hodnoty. To je rozděleno na Co je „systémový čas“ při použití „času“ v příkazovém řádk , ale zkráceně: reálné znamená "nástěnné hodiny", zatímco uživatel a sys ukazují hodiny CPU čas, rozdělený mezi normální kód a systémová volání.

103
mattdm

Použitím spustitelného souboru time místo vestavěného prostředí Shell můžete určit výstupní formát a hodnoty. Např. získejte skutečný uplynulý čas spolu s názvem a parametry příkazu

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

Všimněte si, že musíte určete cestu pro time, jinak budete standardně používat vestavěné prostředí Shell.

26
forcefsck

@galois: Různé skořápky mají hrst "vestavěných" příkazů, které mají přednost před čímkoli v cestě. Normálně je to výhodné; vestavěné programy budou mít tendenci běžet rychleji (protože nevolají externí soubor) a obvykle dávají požadovaný výsledek (tj. v případě časového příkazu se obvykle nestaráte o to, kterou verzi používáte, pokud nechcete použít „ --format "flag".

Takže „čas“ bez jakýchkoli speciálních znaků (jako /), aby to vypadalo, že cesta skončí spuštěním vestavěné, bez ohledu na to, jak vypadá vaše PATH.

Chcete-li prostředí donutit, aby používal příkaz externího času, musíte zadat cestu

0
Tom Payerle