避免jvm热身

Ang*_*Ang 8 java sorting jvm

如果我正在设计排序算法测试,我可以这样做以避免JVM热身吗?谢谢!

double count = 0;
double start, end;
for(int r = 0; r < warmup; r++) {
    // do test
}
for(int t = 0; t < runs; t++){
    start = System.nanoTime();
    // do test
    end = System.nanoTime();
    count += start - end;
}
double avg = count/avg
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 6

JVM预热通常是指JVM查找热点和JIT代码的这些部分所花费的时间.如果你运行你的实际测试几百(实际上我相信几千)次你应该相当不错.

但是你应该知道,即使你这样做,也没有保证.您将不得不尝试使用您的特定JVM来确定在重要部件被JIT之前需要做多少工作等等.


这个小案例研究中,JIT编译在1700次调用之后启动.