java - 避免 jvm 预热

标签 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

最佳答案

JVM 预热通常是指 JVM 找到热点并对这部分代码进行 JIT 所花费的时间。如果您运行实际测试几百次(我相信实际上是几千次),您应该可以顺利进行。

但是您应该知道,即使您这样做了,也没有任何保证。您必须对您的特定 JVM 进行试验,以确定在对重要部分进行 JIT 等操作之前您必须完成多少工作。


this little case study JIT 编译在 1700 次调用后启动。

关于java - 避免 jvm 预热,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4345999/

相关文章:

Python:根据对象的属性对对象列表进行排序

java - 如何在 OpenJDK 中禁用自旋锁同步

java - Apache的反射(reflection)等于将父子视为平等

ios - 从特定值开始对字典数组进行排序

java - 为什么我在 android 4.0.3 中收到 TimePicker NullPointerException?

c++ - 具有变化值的固定节点集的最佳树/堆数据结构+需要前 20 个值?

java - 为什么堆转储的大小小于 JVM 消耗的大小?

java - java字节码总是向前兼容吗?

java - Glassfish4 通过虚拟主机包含外部资源

java - Apache 公共(public)集合的奇怪问题