我想计算每种方法的响应时间。这可以通过System.currentTimeInMillis来完成,但是我听说在Linux上速度很慢。
答案 0 :(得分:6)
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
。