Mogę dość szybko monitorować czas przebiegu procesu za pomocą time
:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
Czy istnieje sposób, aby uzyskać te same dane dla operacji we / wy i wykorzystania procesora przez argument zapisane w STDOUT? Idealne time
byłoby proste polecenie lub narzędzie , w którym przekazuję argument dotyczący rzeczy, którą chcę uruchomić:
x@y ~ $ stats foo
wallclock runtime 0m14.299s
I/O reads 290,420 KB
I/O writes 239,429 KB
peak CPU usage 18.62%
mean CPU usage 1.44%
# etc.
command
time
statistics
time-utility
John Feminella
źródło
źródło
zsh
Słowotime
kluczowe można również skonfigurować (za pomocą$TIMEFMT
) w celu zapewnienia tych informacji.command time -v ...
ponieważbash
jest to porwanietime
.Polecenie
strace
może być przydatne, możesz ograniczyć śledzenie tylko do liczby-c
lub podzbioru wywołań systemowych,W tej odpowiedzi używam go do zliczania liczby wywołań systemowych. Nie wiem, czy cokolwiek da ci podsumowanie podziału przepustowości, jednak strace może wygenerować dane liczbowe dla czegoś takiego jak
awk
podsumowanie.źródło
strace
może znacznie spowolnić, dlatego warto mierzyć względne czasy różnych wywołań systemowych, ale nie używałbym go jako timera ogólnego przeznaczenia.perf
jest znacznie szybszy / mniej ingerujący, jeśli grasz z opcjami częstotliwości próbkowania.