Я могу довольно быстро контролировать время выполнения процесса с помощью time
:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
Есть ли способ получить те же данные для ввода-вывода и использования ЦП аргумента, записанного в STDOUT? time
Идеальной будет простая команда или утилита , где я просто передаю аргумент того, что хочу запустить:
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
Джон Феминелла
источник
источник
zsh
time
Ключевое слово 's также может быть настроено (с$TIMEFMT
) для предоставления этой информации.command time -v ...
так какbash
это угонtime
.Команда
strace
может быть полезна, вы можете ограничить трассировку только количеством-c
или подмножеством системных вызовов,В этом ответе я использую его для подсчета количества системных вызовов. Я не знаю, даст ли вам что-то общее представление о пропускной способности, однако strace может дать цифры для
awk
суммирования.источник
strace
может значительно замедлить процесс, поэтому полезно измерять относительное время разных системных вызовов, но я бы не стал использовать его как таймер общего назначения.perf
гораздо быстрее / менее навязчиво, если вы играете с опциями частоты дискретизации.