7

假设我有一个 Java 程序Test.class。我想测量它的执行时间。我写了一个包装器来做到这一点,如下所示:

class RunTest {

    public static void main(String[] args) {

        long sum = 0;
        int iterations = 20;
        int warmupNum = 10;

        for(int i=0; i<iterations; i++){

            long start = System.nanoTime();
            Test.main(args);
            long end = System.nanoTime();

            if( i > warmupNum )
              sum += end - start;
        }

       System.out.println("ave: "+sum/(iterations-warmupNum));
    }
}

这里怎么选warmupNum,越大越好?多大才够?这是衡量 Java 程序性能的“标准/通用”方法吗?

4

1 回答 1

4

使用Caliper比创建自己的微基准工具要好。

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

于 2012-08-16T17:41:06.800 回答