0

This method provides nanosecond precision, but not necessarily nanosecond accuracy. No guarantees are made about how frequently values change. Differences in successive calls that span greater than approximately 292 years (263 nanoseconds) will not accurately compute elapsed time due to numerical overflow.

値が正確でなく、数値オーバーフローの背後にあるロジックがどのようになっているのかわかりません。

4

1 に答える 1

3

この方法はナノ秒の精度を提供しますが、必ずしもナノ秒の精度ではありません

このメソッドはナノ秒単位の数値を提供しますが、使用するクロックは実際にはナノ秒を追跡できない場合があります。最後の桁の一部が間違っている可能性があります。この方法が使用されるアプリケーションでは、この不正確さは問題ありません。

約 292 年 (263 ナノ秒) を超える連続する呼び出しの違いは、数値のオーバーフローのため、経過時間を正確に計算できません。

2^63 ナノ秒は、 a で表現するにはナノ秒が多すぎlongます。コードを 292 年間実行すると、Java が実行されている期間を正確に表現できないほどの時間が経過します。

于 2013-12-12T16:02:26.723 に答える