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.

我不确定这些值的准确性和数值溢出背后的逻辑。

最佳答案

此方法提供了纳秒精度,但不一定是纳秒精度


该方法将为您提供以纳秒为单位的数字,但是它使用的时钟实际上可能无法跟踪纳秒。最后一些数字可能是错误的。在使用此方法的应用程序中,这种误差是可以的。


  由于数值溢出,跨越大约292年(263纳秒)的连续呼叫中的差异将无法准确计算经过时间。


2 ^ 63纳秒对于long来说代表太多纳秒。如果您的代码运行了292年,那么将花费太多时间,导致Java无法表示运行了多长时间。

10-08 17:46