Ich time
führe einige meiner Befehle aus. Um die Kennzahlen zu mitteln, möchte ich meine Befehle eine festgelegte Anzahl ausführen und zeitlich festlegen und die Ergebnisse mit einem berechneten Mittelwert und einer Standardabweichung erhalten. Das Ergebnis wäre wie folgt:
avgtime -n 100 my_command
real 0m5.388s stdev 0m0.068s
user 0m5.380s stdev 0m0.067s
sys 0m0.004s stdev 0m0.000s
Gibt es ein UNIX-Tool dafür? Hat GNU / Linux eine?
performance
time
benchmark
time-utility
Didier Trosset
quelle
quelle
os.system()
, verursacht den Overhead beim Aufrufen / Erstellen einer Shell mit jedem Befehl. Verwenden Sie wahrscheinlich besser subprocess.call ()Es ist nicht gerade ein UNIX- oder GNU / Linux-Tool, aber Sie können die R- Softwareumgebung für statistische Berechnungen ganz bequem dafür verwenden . (Ich kann jedoch nichts Spezifischeres für Ihre Aufgabe finden .)
Bearbeiten Wie könnte ich bezweifle es, es natürlich ist ein Benchmark - Paket für
R
:rbenchmark
. Es wickelt sich anscheinendsystem.time()
was man auch einfach direkt benutzen könnte. Oder werfen Sie einen Blick auf dieses einfache Stoppuhr-Funktionspaar. Siehe auch "Ausführen eines Systembefehls" @Rosetta Code (oder nicht, es istsystem("command")
.)Edit2 Ich habe gerade die Frage "Messen der Zeit innerhalb eines Skripts" in der rechten Spalte "Verwandte" gesehen, dies könnte auch verwendet werden, dh nimm dir Zeit, mache eine for-Schleife (
N
Zeiten), nimm dir wieder Zeit, berechne die Zeitspanne, dividiere durchN
. (Noch einfacher, versuchen Sie estime ( for-loop )
, analysieren Sie die Ausgabe, dividieren Sie durchN
).quelle
Mit können Sie
R
schnell den Mittelwert, die Standardabweichung und andere interessante Werte berechnen.Sie können beispielsweise GNU-Zeit verwenden, um mehrere Laufzeitmessungen in eine CSV-Datei zu schreiben:
Dann können Sie die Werte mit R wie folgt erzeugen:
Ich habe ein kleines Benchmark-Skript erstellt , das auch einige hübsche Ausdrucke der R-Ausgabe macht, zB:
quelle
Option 1 - sqlite :
Erstellen Sie eine einfache Tabelle mit Befehls- und Zeitspalten und zeigen Sie sie mit geeigneten Aggregationsberechnungen an . Fügen Sie nach dem Timing der Tabelle eine Zeile hinzu .
Vorteile: Einfachere Definition einer Tabelle als bei Lösung 2.
Nachteile: Sie müssen sich um die Vorratsdatenspeicherung kümmern.
Option 2 - rrdtool :
Definieren Sie rrd Datenbankdatei, Datendefinitions- und Aggregationsfunktionen. Füttern Sie die Datenbank nach dem Timing mit
rrdtool update ...
.Vorteile: Mit können Sie ganz einfach Grafiken erstellen
rrdtool graph ...
. Kein Problem bei der Vorratsdatenspeicherung (Round-Robin-Datenbank).Nachteile: rrd-Datenbank ist etwas schwieriger zu definieren als einfache SQL-Tabelle / -Ansicht
quelle
Hyperfein ist eine weitere Option.
Beispielnutzung:
Siehe verwandte Frage .
quelle