Jak określić czas określonego polecenia?


67

(Linuksowy odpowiednik TimeThis.exe)

Coś jak:

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

wget foo.com took 3 seconds.

Odpowiedzi:


93

Spróbuj po prostu timezamiast timethis.

Pamiętaj jednak, że często istnieje wersja czasu wbudowana w powłokę i wersja binarna, która daje wyniki w różnych formatach:

$ 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

W przeciwieństwie do programu „timethis” odzyskujesz trzy wartości. Jest to podzielone na Co to jest „czas systemowy”, gdy używa się „czas” w wierszu poleceń , ale w skrócie: rzeczywisty oznacza „czas zegara ściennego”, podczas gdy użytkownik i sys pokazują czas zegara procesora, podzielony między zwykłe kody i wywołania systemowe.


26

Używając pliku wykonywalnego timezamiast wbudowanej powłoki, możesz określić format wyjściowy i wartości. Np. Uzyskaj rzeczywisty czas, który upłynął wraz z nazwą polecenia i parametrami

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

Zauważ, że musisz podać ścieżkę time, w przeciwnym razie domyślnie użyjesz wbudowanej powłoki.


4
zauważ, że: ścieżka jest ważna. Nie używaj po prostu „czasu” w bashu. Zamiast tego użyj / usr / bin / time
CodeFarmer

1
jaka jest różnica, jeśli /usr/binjest w ich ŚCIEŻCE?
galois

@galois Różnica polega na tym, że bez wyraźnej ścieżki timezostanie użyte wbudowane narzędzie powłoki .
Kusalananda

Można również użyć command timelub \timeuruchomić narzędzie zamiast wbudowanego.
forcefsck

0

@galois: Różne powłoki mają garść „wbudowanych” poleceń, które mają pierwszeństwo przed wszystkim na ścieżce. Zwykle jest to korzystne; wbudowane będą działały szybciej (ponieważ nie wywołuje zewnętrznego pliku) i zazwyczaj dają pożądany rezultat (tj. w przypadku polecenia czasowego zwykle nie dbasz o wersję, której używasz, chyba że chcesz użyć opcji „ --format ”).

Tak więc „czas” bez żadnych znaków specjalnych (takich jak /), aby wyglądało to tak, jakby ścieżka zakończyła się uruchomieniem wbudowanego, niezależnie od tego, jak wygląda ŚCIEŻKA.

Aby wymusić na powłoce użycie polecenia czasu zewnętrznego, musisz podać ścieżkę

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.