Gibt es einen Befehl wie time
, der aber mehr Statistiken meldet? Es wäre toll, wenn ich etwas machen könnte wie:
$ statistics some_command
time:
real 0m3.002s
user 0m0.000s
sys 0m0.000s
memory:
min 41K
peak 2.5M
mean 1.1M
. . .
Wenn es noch weiter gehen könnte, wäre das großartig. Momentan ende ich beim Debuggen entweder damit, top
(tatsächlich glances
) genau hinzuschauen oder Anweisungen durch meinen Code zu streuen.
Wenn es etwas gäbe, an das ich einen Befehl übergeben könnte, wäre das fantastisch.
BEARBEITEN
Möglicherweise habe ich eine Lösung gefunden: perf
im Paket linux-tools
und linux-tools-common
auf Ubuntu 12.04.
$ perf stat ./someprocess
Performance counter stats for './someprocess':
12007.384578 task-clock # 0.996 CPUs utilized
1,092 context-switches # 0.000 M/sec
16 CPU-migrations # 0.000 M/sec
295,102 page-faults # 0.025 M/sec
40,553,682,299 cycles # 3.377 GHz [83.33%]
18,400,458,723 stalled-cycles-frontend # 45.37% frontend cycles idle [83.35%]
8,356,832,355 stalled-cycles-backend # 20.61% backend cycles idle [66.64%]
56,930,684,595 instructions # 1.40 insns per cycle
# 0.32 stalled cycles per insn [83.34%]
9,083,443,825 branches # 756.488 M/sec [83.35%]
3,431,737 branch-misses # 0.04% of all branches [83.33%]
12.051963969 seconds time elapsed
perf
Ergebnisse enthalten keine Speicherstatistik .Antworten:
zsh
hat einen leistungsstärkeren eingebautentime
Befehl alsbash
, und diezsh
Version kann Speicherstatistiken melden.Auch wenn Sie es nicht regelmäßig
zsh
als tägliche Shell verwenden, können Sie es einfach ausführen, wenn Sie diese Art von Statistiken sammeln müssen.Stellen Sie die
TIMEFMT
Umgebungsvariable so ein, dass sie die gewünschte Ausgabe angibt. Folgendes habe ich in meiner.zshrc
Akte (vielleicht etwas zu ausgefallen, aber es gefällt mir):Beispielausgabe:
quelle
time malloc-bytes 10000000
. Das wird 10 Megabyte ausmachen, also probiere es aus und schau, was zsh meldet.%M
ist der maximale Arbeitsspeicher in Megabyte.%M
Berichte in KilobyteGNU-Zeit kann ein bisschen mehr Informationen liefern als die in Bash integrierte Version. Verwenden Sie diese
command time
Option nicht nurtime
, um sie aufzurufen, sondern lesen Sie die Manpage oder Informationen, um weitere Informationen zu erhalten.quelle
/usr/bin/time -v ./my_command.sh
Basierend auf Richards Antwort können Sie einen Alias für die Verwendung der GNU-Zeit erstellen und durchschnittliche und maximale Speicherinformationen bereitstellen:
oder passen Sie Ihre Umgebung an:
Beachten Sie jedoch, dass dies nur funktioniert, wenn dies
/usr/bin/time
häufig nicht standardmäßig aufgerufen wird.Von der Manpage:
quelle