Heim >Java >javaLernprogramm >Was ist der genaueste Weg, die verstrichene Zeit in Java zu messen?

Was ist der genaueste Weg, die verstrichene Zeit in Java zu messen?

DDD
DDDOriginal
2024-12-19 14:41:12675Durchsuche

What's the Most Accurate Way to Measure Elapsed Time in Java?

Messung der in Java verstrichenen Zeit

Um die in Java verstrichene Zeit zu messen, stehen mehrere Methoden zur Verfügung. Der genaueste und effizienteste Ansatz ist jedoch die Verwendung der System.nanoTime()-Methode.

Entgegen der landläufigen Meinung eignet sich System.currentTimeMillis() nicht zur Messung der verstrichenen Zeit, da es auf einer Wanduhr basiert Zeit, die anfällig für Drift und manuelle Korrekturen ist.

System.nanoTime() hingegen ist speziell für die Messung der verstrichenen Zeit konzipiert und wird davon nicht beeinflusst Anpassungen der Wanduhr. Es arbeitet mit einer viel feineren Granularität, typischerweise Mikrosekunden oder Nanosekunden.

Um seine Verwendung zu veranschaulichen, betrachten wir die folgende Klasse:

public class Stream {
    private long startTime;
    private long endTime;

    public void setStartTime() {
        startTime = System.nanoTime();
    }

    public void setEndTime() {
        endTime = System.nanoTime();
    }

    public long getDuration() {
        return endTime - startTime;
    }
}

Durch Aufrufen der Methoden setStartTime() und setEndTime() Innerhalb relevanter Codeblöcke können Sie die Zeitstempel erfassen. Anschließend berechnet der Aufruf von getDuration() genau die vom Anfang bis zum Ende verstrichene Zeit in Nanosekunden, die leicht in die entsprechende Einheit (z. B. Millisekunden, Sekunden oder Minuten) umgewandelt werden kann.

Denken Sie daran: while System.nanoTime() bietet hochpräzises Timing, seine Ergebnisse können auch durch Faktoren wie das Betriebssystem, die Hardware und andere gleichzeitig laufende Prozesse beeinflusst werden.

Das obige ist der detaillierte Inhalt vonWas ist der genaueste Weg, die verstrichene Zeit in Java zu messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn