Je peux surveiller assez rapidement le temps d'exécution d'un processus avec time
:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
Existe-t-il un moyen d'obtenir les mêmes données pour les E / S et l'utilisation du processeur d'un argument, enregistrées dans STDOUT? Une simple commande ou un utilitaire comme time
serait idéal, où je passe juste l'argument de la chose que je veux exécuter:
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.
la source
zsh
Letime
mot-clé de peut également être configuré (avec$TIMEFMT
) pour fournir ces informations.command time -v ...
car ilbash
s'agit d'un détournementtime
.La commande
strace
peut être utile, vous pouvez limiter la trace au nombre-c
ou à un sous-ensemble d'appels système,Dans cette réponse , je l'utilise pour compter le nombre d'appels système. Je ne sais pas si quelque chose vous donnera une ventilation sommaire du débit, mais strace peut produire les chiffres pour quelque chose comme
awk
résumer.la source
strace
peut ralentir considérablement les choses, il est donc utile de mesurer les temps relatifs des différents appels système, mais je ne l'utiliserais pas comme une minuterie à usage général.perf
est beaucoup plus rapide / moins intrusif, si vous jouez avec des options de fréquence d'échantillonnage.