JavaSystem.NanoTime 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳執行中的 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 所創建與分享的作品,並依授權條款所描述的使用進行修改。