Language

JavaSystem.NanoTime メソッド

定義

実行中のJava仮想マシンの高解像度タイム ソースの現在の値をナノ秒単位で返します。

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

返品

実行中のJava仮想マシンの高解像度タイム ソースの現在の値 (ナノ秒単位)

属性

注釈

実行中のJava仮想マシンの高解像度タイム ソースの現在の値をナノ秒単位で返します。

このメソッドは経過時間の測定にのみ使用でき、システム時間やウォール クロック時間の他の概念には関係ありません。 返される値は、固定の任意の 原点 時刻 (将来の場合があるため、値が負の値になる可能性があるため) からナノ秒を表します。 同じオリジンは、Java仮想マシンのインスタンスでこのメソッドのすべての呼び出しで使用されます。他の仮想マシン インスタンスでは、異なるオリジンが使用される可能性があります。

このメソッドはナノ秒の精度を提供しますが、必ずしもナノ秒の解像度 (つまり、値の変更頻度) を提供します。解像度が少なくとも #currentTimeMillis()ほど優れている点を除き、保証は行われません。

約 292 年 (2<up>63</sup> ナノ秒) を超える連続する呼び出しの違いは、数値オーバーフローのために経過時間を正しく計算しません。

このメソッドによって返される値は、Java仮想マシンの同じインスタンス内で取得された 2 つの値の差が計算された場合にのみ意味を持ちます。

たとえば、一部のコードの実行にかかる時間を測定するには、次のようにします。

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

2 つの nanoTime 値を比較するには

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

数値オーバーフローの可能性があるため、t1 - t0 < 0ではなくt1 < t0を使用する必要があります。

このメソッドによって返される値は、ディープ スリープ中の経過時間を考慮しません。 Android で利用できる計時機能については、 android.os.SystemClockを参照してください。

1\.5 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象