如何测量Java代码所花费的时间?

这个问题在这里已经有了答案:

  • 我如何在Java中编写正确的微基准测试? 11个答案

  • 您甚至可以使用System.nanoTime()获得纳秒级分辨率。

    但是,您可能需要考虑以下几点:

    我如何在Java中编写正确的微基准测试?


    假设你有一种特定的方法,你想放在显微镜下。 你可以这样做,如下所示:

    long time1 = System.nanoTime();
    thatMethod();
    long time2 = System.nanoTime();
    long timeTaken = time2 - time1;  
    System.out.println("Time taken " + timeTaken + " ns");  
    

    计算机速度非常快,所以使用getTimeMillis()时可能会发生时差,可能为零。 因此,使用nanoTime()

    你也可以使用Caliper 。 他们有一个视频开始。 另外,请仔细阅读creichen指出的答案。 它有很多很棒的东西。


    使用Speed4j等库。 这不仅需要对呼叫进行基准测试,还需要提供日志统计信息,您还可以通过JMX远程查看它们。 最好使用这样的库,而不是将System.current ..调用放在代码中。

    链接地址: http://www.djcxy.com/p/86537.html

    上一篇: How to measure time taken by Java code?

    下一篇: Create quick/reliable benchmark with java?