Class Timer
Mit einem Timer
kann zum Beispiel die Laufzeit eines Algorithmus
gemessen werden. Wie eine echte Stoppuhr läuft der Timer
weiter, wenn
nach einem stop()
wieder start()
aufgerufen wird. Soll die
Zeitmessung wieder bei null beginnen, muss vorher reset()
genutzt
werden.
Die gemessene Zeit kann in Millisekunden
oder
Sekunden
abgerufen werden. Wird eine noch größere
Genauigkeit benötigt, können mit getTime(TimeUnit)
beliebige
Zeiteinheiten (zum Beispiel Nanosekunden
)
abgerufen werden.
Die Zeit kann auch bei laufender Uhr abgefragt werden. In dem Fall wird die bis zu diesem Zeitpunkt gemessene Zeit zurückgegeben.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Gibt die gemessene Zeit in Millisekunden (gerundet) zurück.double
Gibt die gemessene Zeit in Sekunden zurück.long
getTime()
Gibt die Zeit in der Basiseinheit zurück.long
Gibt die Zeit in der angegebenen Einheit zurück.boolean
Ob die Zeitmessung gerade läuft.reset()
Setzt denTimer
auf den Startzustand und löscht alle bisher gemessenen Zeiten.start()
Startet die Zeitmessung.stop()
Stoppt denTimer
, wenn er derzeit läuft.
-
Constructor Details
-
Timer
public Timer()Erstellt einen neuenTimer
mit Millisekunden als Basiseinheit. -
Timer
Erstellt einenTimer
, der die angegebene Einheit als Basiseinheit fürgetTime()
benutzt.Um eine Zeitmessung in Nanosekunden durchzuführen, kann der
Timer
beispielsweise so instanziiert werden:Timer clock = new Timer(TimeUnit.NANOSECONDS);
- Parameters:
baseUnit
- Die Basiseinheit für die Zeitmessung.
-
-
Method Details
-
isRunning
public boolean isRunning()Ob die Zeitmessung gerade läuft.- Returns:
true
, wenn die Zeitmessung mitstart()
gestartet wurde.
-
start
Startet die Zeitmessung.Wenn zuvor schon eine Zeitmessung gestartet wurde, wird die neue Messung zur Summe aller Messungen hinzuaddiert. Soll die Messung bei null starten, muss vorher
reset()
verwendet werden:// Timer auf null stellen und sofort starten timer.reset().start();
- Returns:
- Dieser
Timer
selbst (method chaining).
-
stop
Stoppt denTimer
, wenn er derzeit läuft. Die gemessene Dauer wird zur Summe aller gemessenen Zeiten hinzuaddiert.- Returns:
- Dieser
Timer
selbst (method chaining).
-
reset
Setzt denTimer
auf den Startzustand und löscht alle bisher gemessenen Zeiten. Falls die Zeitmessung gerade läuft, stoppt sie nicht, sondern startet vom Zeitpunkt des Aufrufs neu.- Returns:
- Dieser
Timer
selbst (method chaining).
-
getTime
public long getTime()Gibt die Zeit in der Basiseinheit zurück.- Returns:
- Die bisher insgesamt gemessene Zeit.
-
getTime
Gibt die Zeit in der angegebenen Einheit zurück.Größere Zeiteinheiten werden gerundet und verlieren daher an Genauigkeit. Eine Zeitmessung von 999 Millisekunden wird als 0 Sekunden zurückgegeben.
Um genauere Ergebnisse zu erhalten, kann mit
getMillis()
undgetSeconds()
die gemessene Zeit in Minuten beziehungsweise Sekunden als Kommazahl abgefragt werden.- Parameters:
unit
- Zeiteinheit- Returns:
- Die bisher insgesamt gemessene Zeit in der gewählten Zeiteinheit.
-
getMillis
public int getMillis()Gibt die gemessene Zeit in Millisekunden (gerundet) zurück.- Returns:
- Die gemessene Zeit in ms.
-
getSeconds
public double getSeconds()Gibt die gemessene Zeit in Sekunden zurück.- Returns:
- Die gemessene Zeit in s.
-