java中最准确的时间类型?

时间:2010-01-19 21:50:12

标签: java date

我想比较我的应用程序中某些操作的性能。

除了使用Date对象之外,还有什么更精确的吗?

3 个答案:

答案 0 :(得分:7)

public static long nanoTime() - 返回最精确的可用系统计时器的当前值,以纳秒为单位。

作为Zach Scrivener states in his answer

  

我的猜测是,因为System。nanoTime()使用“最精确的   可用的系统计时器“显然只有   系统上的毫秒级精度,你无法获得更好的效果。

答案 1 :(得分:2)

如果您通过减去两个时间戳来衡量经过时间,则应使用System.nanoTime()来获取这些时间戳。这就是它的用途。

答案 2 :(得分:1)

要获得CPU时间,您可以使用线程管理Bean的getCurrentThreadCpuTime 它返回实际线程使用的CPU时间,以纳秒为单位:

    ThreadMXBean threadMX = ManagementFactory.getThreadMXBean();
    long time = threadMX.getCurrentThreadCpuTime();

    // do something 

    time = threadMX.getCurrentThreadCpuTime() - time;  // CPU time in nanoseconds

检查documentation以获取详细信息以及未启用CPU时间测量等问题。