JavaSystem.NanoTime Methode

Definition

Gibt den aktuellen Wert der ausgeführten Java Hochauflösungszeitquelle des virtuellen Computers in Nanosekunden zurück.

[Android.Runtime.Register("nanoTime", "()J", "")]
public static long NanoTime();
[<Android.Runtime.Register("nanoTime", "()J", "")>]
static member NanoTime : unit -> int64

Gibt zurück

der aktuelle Wert der ausgeführten Java High-Resolution Time Source des virtuellen Computers in Nanosekunden

Attribute

Hinweise

Gibt den aktuellen Wert der ausgeführten Java Hochauflösungszeitquelle des virtuellen Computers in Nanosekunden zurück.

Diese Methode kann nur verwendet werden, um verstrichene Zeit zu messen und ist nicht mit einem anderen Begriff der System- oder Wanduhrzeit verbunden. Der zurückgegebene Wert stellt Nanosekunden dar, da einige feste, aber willkürliche Ursprungszeit (möglicherweise in der Zukunft, daher können Werte negativ sein). Derselbe Ursprung wird von allen Aufrufen dieser Methode in einer Instanz eines Java virtuellen Computers verwendet. Andere Instanzen virtueller Computer verwenden wahrscheinlich einen anderen Ursprung.

Diese Methode bietet Nanosekundenpräzision, aber nicht unbedingt Nanosekundenauflösung (d. h., wie häufig sich der Wert ändert) - es werden keine Garantien gegeben, außer dass die Auflösung mindestens so gut ist wie die der.#currentTimeMillis()

Unterschiede bei aufeinander folgenden Aufrufen, die sich über etwa 292 Jahre erstrecken (2<sup 63>/sup<> Nanosekunden), werden aufgrund eines numerischen Überlaufs nicht ordnungsgemäß berechnet.

Die von dieser Methode zurückgegebenen Werte werden nur dann sinnvoll, wenn der Unterschied zwischen zwei solchen Werten, die in derselben Instanz eines Java virtuellen Computers abgerufen werden, berechnet wird.

Beispiel: So messen Sie, wie lange ein Code ausgeführt werden muss:

{@code
            long startTime = System.nanoTime();
            // ... the code being measured ...
            long estimatedTime = System.nanoTime() - startTime;}

So vergleichen Sie zwei NanoTime-Werte

{@code
            long t0 = System.nanoTime();
            ...
            long t1 = System.nanoTime();}

man sollte , nicht t1 - t0 < 0aufgrund der Möglichkeit eines numerischen Überlaufs, verwendent1 < t0.

Der von dieser Methode zurückgegebene Wert berücksichtigt keine verstrichene Zeit während des Tiefschlafs. Informationen zu Timekeeping-Einrichtungen, die unter Android verfügbar sind, finden Sie unter android.os.SystemClock.

Hinzugefügt in 1.5.

Java Dokumentation für java.lang.System.nanoTime().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: