Posso monitorar rapidamente o tempo de execução de um processo com time
:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
Existe uma maneira de obter os mesmos dados para o uso de E / S e CPU de um argumento, registrado em STDOUT? Um comando ou utilitário simples time
seria o ideal, onde apenas passo o argumento da coisa que quero executar:
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
fonte
fonte
zsh
Atime
palavra-chave de também pode ser configurada (com$TIMEFMT
) para fornecer essas informações.command time -v ...
poisbash
está sendo seqüestradotime
.O comando
strace
pode ser útil, você pode limitar o rastreamento para contar apenas-c
ou um subconjunto de chamadas do sistema,Nesta resposta , eu o uso para contar o número de chamadas do sistema. Não sei se alguma coisa fornecerá uma análise resumida da taxa de transferência, mas o strace pode produzir os números para algo como
awk
resumir.fonte
strace
pode atrasar significativamente as coisas, por isso é útil medir tempos relativos de chamadas de sistema diferentes, mas eu não usaria isso como um cronômetro de uso geral.perf
é muito mais rápido / menos invasivo, se você jogar com opções de frequência de amostragem.