Puedo monitorear rápidamente el tiempo de ejecución de un proceso con time
:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
¿Hay alguna manera de obtener los mismos datos para el uso de E / S y CPU de un argumento, registrado en STDOUT? Un comando simple o una utilidad como time
sería ideal, donde simplemente paso el argumento de lo que quiero ejecutar:
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
fuente
fuente
zsh
Latime
palabra clave también se puede configurar (con$TIMEFMT
) para proporcionar esa información.command time -v ...
ya quebash
está secuestrandotime
.El comando
strace
puede ser útil, puede limitar el seguimiento para que solo cuente-c
o un subconjunto de llamadas del sistema,En esta respuesta , lo uso para contar la cantidad de llamadas al sistema. No sé si algo le dará un desglose resumido del rendimiento, sin embargo, strace puede producir las cifras para algo como
awk
resumir.fuente
strace
puede ralentizar las cosas significativamente, por lo que es útil medir tiempos relativos de diferentes llamadas al sistema, pero no lo usaría como un temporizador de propósito general.perf
es mucho más rápido / menos intrusivo, si juegas con opciones de frecuencia de muestreo.