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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintGibt die gemessene Zeit in Millisekunden (gerundet) zurück.doubleGibt die gemessene Zeit in Sekunden zurück.longgetTime()Gibt die Zeit in der Basiseinheit zurück.longGibt die Zeit in der angegebenen Einheit zurück.booleanOb die Zeitmessung gerade läuft.reset()Setzt denTimerauf 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 neuenTimermit Millisekunden als Basiseinheit. -
Timer
Erstellt einenTimer, der die angegebene Einheit als Basiseinheit fürgetTime()benutzt.Um eine Zeitmessung in Nanosekunden durchzuführen, kann der
Timerbeispielsweise 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
Timerselbst (method chaining).
-
stop
Stoppt denTimer, wenn er derzeit läuft. Die gemessene Dauer wird zur Summe aller gemessenen Zeiten hinzuaddiert.- Returns:
- Dieser
Timerselbst (method chaining).
-
reset
Setzt denTimerauf 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
Timerselbst (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.
-