我是Java的新手.我正在阅读有关JVM预热的内容,并了解它指的是JVM查找热点所需的时间以及JIT代码的这些部分.
我也明白,为了做到这一点,我必须进行几百次测试.
但我不明白的事情如下:
在JVM完全预热之前,如何确定测试应运行的次数?
这会将JVM更改为JVM吗?我的意思是,如果我能够通过运行1000次迭代来预热我的JVM,那么其他人可能最终需要更多或更少?
运行测试是预热JVM的唯一方法吗?
我应该什么时候预热JVM?我的意思是频率.我是否应该每次停止并启动应用程序,或者只是在重新启动服务器后执行一次?
这是我的第一个问题.我在发布之前阅读了指南.如果有任何错误,请建议编辑.
在 JVM 完全预热之前,我应如何确定测试应运行的次数?
假设您有默认的-XX:CompileThreshold=10000方法,可以在 10,000 次调用后触发编译,或者其中有一个已迭代 10,000 次的循环。这是在后台排队等待编译的,因此在运行优化代码之前可能需要 12K - 20K 迭代。
注意:JIT 可以重新优化代码,即使在 10K 或 100 万次迭代之后,您也可能会看到时间变化。
这是否会将 JVM 更改为 JVM?我的意思是,如果我能够通过运行 1000 次迭代来预热我的 JVM,那么其他人最终可能会需要更多或更少的东西吗?
是的。如果您做的事情比您认为需要的更多,那么这是涵盖更多配置的最佳方法。
运行测试是预热 JVM 的唯一方法吗?
理想情况下,您确实应该运行真实的代码。运行测试可以更好地减少代码预热的影响,因此在生产中更实用。
我什么时候应该预热 JVM?我指的是频率。我应该在每次停止和启动应用程序时执行此操作,还是在重新启动服务器后执行一次?
每当启动 JVM 时,您都是从头开始。即使同一个 JVM 已经在运行,或者您从另一个 JVM 中生成了一个。
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |