【发布时间】:2019-07-04 15:30:28
【问题描述】:
我想计算每个方法的响应时间。这可以用 System.currentTimeInMillis 来完成,但我听说它在 linux 上很慢。
谁能解释一下为什么这么慢?
【问题讨论】:
标签: java performance time milliseconds
我想计算每个方法的响应时间。这可以用 System.currentTimeInMillis 来完成,但我听说它在 linux 上很慢。
谁能解释一下为什么这么慢?
【问题讨论】:
标签: java performance time milliseconds
java.time.Instant.now()这可以通过 System.currentTimeInMillis 来完成
System.getCurrentTimeInMillis 方法被 Instant.now() 取代。
在 Java 9 及更高版本的大多数实现中,您会发现 Instant 以更精细的微秒分辨率捕获当前时刻,六位小数比三位小数。需要明确的是,Instant 可以以更精细的分辨率(纳秒)表示一个时刻,但用微秒捕捉当前时刻。今天的传统硬件无法以纳秒级的分辨率准确跟踪时间。
System.nanoTime()我想计算每个方法的响应时间。
对于微基准测试,请使用System.nanoTime。此方法跟踪经过的纳秒无限循环,但与当前日期时间无关。
请注意,微基准测试很棘手。由新手执行时,结果可能不可靠。
对于严格的微基准测试,请考虑使用JMH 框架。
System.currentTimeInMillis
…System.currentTimeInMillis 但我听说它在 linux 上很慢。
我不知道是什么促成了这种说法。我怀疑你误会了。
无论如何,这个问题没有实际意义。没有人需要在现代 Java 中再次调用 System.currentTimeInMillis。
【讨论】: