Ich kann die Laufzeit eines Prozesses ziemlich schnell überwachen mit time
:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
Gibt es eine Möglichkeit, die gleichen Daten für die E / A- und CPU-Auslastung eines Arguments zu erhalten, das in STDOUT aufgezeichnet wurde? time
Ideal wäre ein einfacher Befehl oder ein Dienstprogramm wie :
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
quelle
quelle
zsh
Dastime
Schlüsselwort von kann auch konfiguriert werden (mit$TIMEFMT
), um diese Informationen bereitzustellen.command time -v ...
da erbash
entführt wirdtime
.Der Befehl
strace
kann nützlich sein. Sie können den Trace auf die Anzahl-c
oder eine Teilmenge von Systemaufrufen beschränken.In dieser Antwort verwende ich es, um die Anzahl der Systemaufrufe zu zählen. Ich weiß nicht, ob Ihnen irgendetwas eine zusammenfassende Aufschlüsselung des Durchsatzes liefert, aber strace kann die Zahlen für so etwas wie eine Zusammenfassung liefern
awk
.quelle
strace
kann die Dinge erheblich verlangsamen, daher ist es nützlich, die relativen Zeiten verschiedener Systemaufrufe zu messen, aber ich würde es nicht als Allzweck-Timer verwenden.perf
ist viel schneller / weniger aufdringlich, wenn Sie mit Abtastfrequenzoptionen spielen.