Gibt es eine Stoppuhr in Java? Bei Google finde ich nur Code von Stoppuhren, die nicht funktionieren - sie geben immer 0 Millisekunden zurück.
Dieser Code, den ich gefunden habe, funktioniert nicht, aber ich verstehe nicht warum.
public class StopWatch {
private long startTime = 0;
private long stopTime = 0;
private boolean running = false;
public void start() {
this.startTime = System.currentTimeMillis();
this.running = true;
}
public void stop() {
this.stopTime = System.currentTimeMillis();
this.running = false;
}
//elaspsed time in milliseconds
public long getElapsedTime() {
long elapsed;
if (running) {
elapsed = (System.currentTimeMillis() - startTime);
} else {
elapsed = (stopTime - startTime);
}
return elapsed;
}
//elaspsed time in seconds
public long getElapsedTimeSecs() {
long elapsed;
if (running) {
elapsed = ((System.currentTimeMillis() - startTime) / 1000);
} else {
elapsed = ((stopTime - startTime) / 1000);
}
return elapsed;
}
}
currentTimeMillis()
für die Produktion verwenden, da es an das Datum / die Uhrzeit des Systems gebunden ist und nicht garantiert eintönig ist (z. B. kann es zu einer negativen verstrichenen Zeit kommen). Zur Messung der ZeitnutzungnanoTime()
- es ist garantiert eintönig und genau für Messzwecke vorgesehen. Siehe docs.oracle.com/javase/8/docs/api/java/lang/…Antworten:
Sie finden einen in
http://commons.apache.org/lang/
Es heißt
Aber es macht ungefähr das Gleiche wie deins. Wenn Sie mehr Präzision wünschen, verwenden Sie
Siehe auch diese Frage hier:
Zeitmessaufwand in Java
quelle
Verwenden Sie die
Stopwatch
Klasse von Guava .quelle
getStartTime()
, Apache fehltisRunning()
ahhhhJetzt können Sie etwas ausprobieren wie:
Die Ausgabe erfolgt in ISO 8601.
quelle
Die Feder bietet eine elegante
org.springframework.util.StopWatch
Klasse (Federkernmodul).quelle
Verwenden Sie
System.currentTimeMillis()
diese Option , um die Start- und Endzeit abzurufen und die Differenz zu berechnen.Weitere Infos in diesem Tutorial
quelle
Der Code funktioniert nicht, da die verstrichene Variable in
getElapsedTimeSecs()
keinfloat
oder istdouble
.quelle
Es gibt kein eingebautes Stoppuhr-Dienstprogramm, aber ab JSR-310 (Java 8 Time) können Sie dies einfach tun.
Ich habe dies nicht richtig bewertet, aber ich würde vermuten, dass die Verwendung der Stoppuhr von Guava effektiver ist.
quelle
Versuchen Sie dies http://introcs.cs.princeton.edu/java/stdlib/Stopwatch.java.html
das ist sehr einfach
Diese Klasse ist Teil von stdlib.jar
quelle
Einfache sofort einsatzbereite Stoppuhrklasse:
Verwendung:
quelle
Verwenden Sie: com.google.common.base.Stopwatch, es ist einfach und leicht.
Beispiel:
Diese Aufgabe dauerte 112 Mühlen
quelle
Versuche dies
quelle
Versuche dies:
Verwenden:
quelle
Versuche dies.
Verwendung:
Konsole:
quelle
currentTimeMillis()
ist an das Datum / die Uhrzeit des Systems gebunden und garantiert nicht eintönig (z. B. können Sie eine negative verstrichene Zeit erhalten).System.nanoTime()
um immer korrekte Ergebnisse zu erhalten.Performetrics bietet eine praktische Stoppuhrklasse, genau so, wie Sie es brauchen. Es kann die Wanduhrzeit und mehr messen: Bei Bedarf misst es auch die CPU-Zeit (Benutzerzeit und Systemzeit). Es ist klein, kostenlos und kann von Maven Central heruntergeladen werden. Weitere Informationen und Beispiele finden Sie hier: https://obvj.net/performetrics
Sie können die Metriken in jede Zeiteinheit konvertieren (Nanosekunden, Millisekunden, Sekunden usw.)
PS: Ich bin der Autor des Tools.
quelle
Eine bequeme finden Sie hier:
https://github.com/varra4u/utils4j/blob/master/src/main/java/com/varra/util/StopWatch.java
Verwendung:
quelle
Versuche dies.
Java Stopwatch voll funktionsfähige Lösung
Hier erhalten Sie eine voll funktionsfähige Lösung.
Nur ein Ausschnitt aus der oben verlinkten Lösung:
Sie können eine Klasse wie den folgenden Code erstellen und die Start- und Stoppmethode dieser Klasse vor und nach dem Codeabschnitt verwenden, um die benötigte Zeit zu messen.
}}
Danke dir.
quelle