22 Stimmen

Java-Leistungstimerbibliothek

Ich wickle Code häufig in ein [System.nanoTime()](http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#nanoTime()) Paar ein, um die Zeit zu messen. So etwas wie:

long start = System.nanoTime();    
methodToBeTimed();
long elapsedTime = System.nanoTime() - start;

Gibt es eine gute Timing-Bibliothek, die bei diesem Problem hilft? Auch selbstgeschriebener Code wird akzeptiert.

HB

Ein Profiler ist hier keine Lösung, da ich einige Zeitbeschränkungen in meinen Unit-Tests durchsetzen möchte, daher möchte ich Methoden programmgesteuert timen.

0 Stimmen

Ich verstehe nicht, was das "Problem" ist, das du zu lösen versuchst. Du hast eine Zeile oben und eine Zeile unten, um dir die verstrichene Zeit anzuzeigen. Und du hast eine Variable, um sie festzuhalten. Du könntest dies in eine Klasse einwickeln oder die Stopwatch-Klasse verwenden, aber du wirst die Komplexität des Codes wirklich nicht verringern: du wirst immer noch eine Zeile oben und eine Zeile unten benötigen. Möchtest du Hilfe dabei, eine große Anzahl solcher Zeiten aufzuzeichnen und zu verfolgen?

10voto

Mark Punkte 28072

Ignorieren Sie diese Antwort, da das Projekt nicht mehr aktiv ist

Ich habe es nicht benutzt, aber ich bin kürzlich auf perf4j gestoßen.

0 Stimmen

@Mark: Habe noch nie davon gehört. Vielen Dank!

0 Stimmen

Du kannst sogar Diagramme mit perf4j zeichnen, mit dem integrierten Servlet. Es ist ziemlich gut.

0 Stimmen

Der Link ist defekt :-(

9voto

Manuel Selva Punkte 17616

Keine direkte Antwort auf deine Frage, aber ich benutze diesen Tipp auch oft, um meinen Code zu timen, und habe gerade die folgende einfache Eclipse -> Surround With-Vorlage geschrieben:

long startTime = System.currentTimeMillis();
${line_selection}${cursor}
long totalTime = System.currentTimeMillis() - startTime;
System.out.println("Gesamtzeit = " + totalTime);
System.out.println();

0 Stimmen

Leider bin ich ein Netbeans-Benutzer -:)

4voto

Malax Punkte 9176

Wenn Sie Spring verwenden, haben Sie bereits eine schöne Klasse namens StopWatch in Ihrem Klassenpfad für diesen Zweck.

2voto

ahanin Punkte 882

JETM ist eine gute Bibliothek, um das zu tun. Es kann auch Minima, Maxima und Durchschnittswerte bereitstellen und informativen Grafiken generieren.

0 Stimmen

Sieht aus als würde es nicht mehr gepflegt werden, für alle die daran interessiert sind. Funktioniert nur auf HTTP und der JavaDoc ist nicht verfügbar.

1voto

techzen Punkte 2775

Schon JPerf ausprobiert?

0 Stimmen

Verwenden Sie den Google-Cache, um die Verwendung zu sehen. Überprüfen Sie alternativ den Link zu xjperf: code.google.com/p/xjperf

0 Stimmen

Es scheint eine Benutzeroberfläche für iperf zu sein, das ist "eine moderne Alternative zur Messung der maximalen TCP- und UDP-Bandbreitenleistung". Ist das richtig?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X