Gelöst: Java erhält Execuon-Zeit

Letzte Aktualisierung: 06/19/2023

Holen Sie sich eine tolle Zeit Die Welt des Programmierens ist riesig und komplex und es gibt immer wieder interessante Herausforderungen, denen sich Entwickler jeden Tag stellen müssen. Eine dieser Herausforderungen besteht darin, die Ausführungszeit eines Codeabschnitts zu messen. Manchmal ist dies entscheidend für die Optimierung der Leistung einer Anwendung. In diesem Artikel untersuchen wir einen nützlichen Ansatz in Java zum Berechnen und Erhalten der Ausführungszeit eines bestimmten Codeabschnitts. Wir werden uns die Syntax und die Methoden dieses Prozesses genauer ansehen und Ihnen eine Schritt-für-Schritt-Erklärung geben, damit Sie die Lösung besser verstehen.

Lassen Sie uns zunächst die Lösung des vorliegenden Problems besprechen. Java bietet eine integrierte Methode namens System.nanoTime() zum Messen der verstrichenen Zeit in Nanosekunden. Diese Methode ist praktisch, wenn Sie die Zeit messen möchten, die zum Ausführen eines Codeblocks benötigt wird.

long startTime = System.nanoTime();
// Your code here
long endTime = System.nanoTime();
long executionTime = endTime - startTime;

Der Ansatz ist ziemlich einfach: Wir zeichnen eine Startzeit direkt vor der Ausführung des problematischen Codeblocks auf und zeichnen dann eine Endzeit direkt nach der Codeausführung auf. Anschließend können wir die Dauer berechnen und die tatsächliche Ausführungszeit des Codes ermitteln.

Schritt-für-Schritt-Erklärung des Codes

Schritt 1: Erfassen Sie die Anfangszeit mit System.nanoTime():

long startTime = System.nanoTime();
  • Das Startzeit Die Variable enthält die von System.nanoTime() erhaltene Anfangszeit.

Schritt 2: Führen Sie den Codeblock aus, den Sie messen möchten:

// Your code here
  • Dieser Schritt dient hauptsächlich dazu, die Platzierung Ihres Codeblocks nach der Startzeitberechnung zu demonstrieren.

Schritt 3: Notieren Sie die endgültige Zeit, nachdem Ihr Codeblock ausgeführt wurde:

long endTime = System.nanoTime();
  • Das Endzeit Die Variable speichert die aktuelle Zeit, die von System.nanoTime() nach der Ausführung des Codeblocks erhalten wurde.

Schritt 4: Ausführungszeit berechnen und anzeigen:

long executionTime = endTime - startTime;
System.out.println("Execution time: " + executionTime + " nanoseconds");
  • Das Ausführungszeit Die Variable speichert die Differenz zwischen endTime und startTime.
  • Die println-Anweisung zeigt die Ausführungszeit in Nanosekunden an.

Die System.nanoTime()-Methode

In diesem Abschnitt werden wir uns mit den Details der System.nanoTime()-Methode befassen. Es ist wichtig, die Funktionsweise der Methode zu verstehen, um sicherzustellen, dass Sie bei Ihren Messungen genaue Ergebnisse erhalten:

  • System.nanoTime() gibt den aktuellen Wert des genauesten verfügbaren Systemtimers in Nanosekunden zurück. Dieser Timer verfügt über eine Präzision im Nanosekundenbereich, sollte aber nicht mit Genauigkeit verwechselt werden – er liefert lediglich eine präzise Zeitmessung.
  • System.nanoTime() ist ideal für die Messung der verstrichenen Zeit, da sie nicht von etwaigen Systemuhreinstellungen beeinflusst wird.
  • Beachten Sie, dass es nicht dazu gedacht ist, einen absoluten Zeitstempel zu erhalten; Sein Zweck besteht ausschließlich in der Messung von Zeitintervallen.

Alternativen zu System.nanoTime()

Obwohl System.nanoTime() die präziseste verfügbare Methode ist, können andere Methoden zur Messung der Ausführungszeit je nach Bedarf verwendet werden.

  • System.currentTimeMillis(): Gibt die aktuelle Zeit in Millisekunden seit dem 1. Januar 1970 um 00:00:00 GMT (die Unix-Epoche) zurück. Es ist weniger präzise als System.nanoTime(), kann aber für bestimmte Anwendungsfälle ausreichend sein.
  • Javas Stopwatch-Klasse: Diese Dienstprogrammklasse bietet eine übergeordnete und benutzerfreundlichere Schnittstelle zum Messen der verstrichenen Zeit. Es ist Teil der Google Guava-Bibliothek und gewährleistet eine einfache Implementierung und klare Techniken zur Messung der Ausführungszeiten.

Zusammenfassend lässt sich sagen, dass die Messung der Ausführungszeit eines bestimmten Codeabschnitts entscheidend für die Optimierung der Leistung einer Java-Anwendung ist. Durch die Nutzung der System.nanoTime()-Methode können Entwickler präzise Messungen erhalten und Anwendungsengpässe problemlos beheben.

Zusammenhängende Posts: