Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么System.currentTimeMillis()在Linux上运行缓慢?_Java_Performance_Time_Milliseconds - Fatal编程技术网

Java 为什么System.currentTimeMillis()在Linux上运行缓慢?

Java 为什么System.currentTimeMillis()在Linux上运行缓慢?,java,performance,time,milliseconds,Java,Performance,Time,Milliseconds,我想计算每个方法的响应时间。这可以用System.currentTimeInMillis完成,但我听说它在linux上很慢 有人能解释一下它为什么慢吗?java.time.Instant.now() 这可以通过System.currentTimeInMillis完成 该方法System.getCurrentTimeInMillis被Instant.now()取代 在大多数Java 9及更高版本的实现中,您会发现,Instant以更精细的微秒分辨率捕捉当前时刻,对于小数点的六位数,而不是三位数。清

我想计算每个方法的响应时间。这可以用System.currentTimeInMillis完成,但我听说它在linux上很慢

有人能解释一下它为什么慢吗?

java.time.Instant.now()
这可以通过System.currentTimeInMillis完成

该方法
System.getCurrentTimeInMillis
Instant.now()取代

在大多数Java 9及更高版本的实现中,您会发现,
Instant
以更精细的微秒分辨率捕捉当前时刻,对于小数点的六位数,而不是三位数。清楚地说,
Instant
可以表示分辨率更高的瞬间,纳秒,但可以用微秒捕捉当前瞬间。今天的传统硬件无法以纳米分辨率精确跟踪时间

System.nanoTime()
我想计算每个方法的响应时间

对于微观基准测试,请使用
System.nanoTime
。此方法跟踪经过的无休止的纳秒循环,但与当前日期时间无关

请注意,微观基准比较棘手。当由新手执行时,结果可能不可靠

对于严重的微观基准,考虑使用该框架。 避免
System.currentTimeInMillis
…System.currentTimeInMillis,但我听说它在linux上运行缓慢

我不知道是什么促使了这一说法。我怀疑你误解了

无论如何,这个问题是没有意义的。在现代Java中,没有人需要再次调用
System.currentTimeInMillis

这里有答案