語言

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<sup>63</sup> 奈秒)的連續呼叫差異,因數值溢出無法正確計算經過時間。

此方法回傳的值只有在計算出同一 Java 虛擬機實例中兩個此類值的差值時才有意義。

例如,為了衡量某些程式碼執行所需的時間:

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

比較兩個 nanoTime 值

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

應使用 t1 - t0 < 0,而非 t1 < t0,因為可能存在數值溢出。

此方法回傳的值未考慮深度睡眠期間的經過時間。 關於 Android 上可用的時間管理功能,請參見 android.os.SystemClock。

已在1.5中新增。

Java 文件 java.lang.System.nanoTime()。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於