java – 我可以使用已编写的Jmh microbenchmarks来预热生产代码

我有许多代码路径的基准测试需要高性能.我的Jmh微基准测试的热身迭代比我在生产中编写的热身代码更有效.我的问题是,我可以导出我的基准测试并通过
Java API调用它们,以便在真实的实时应用程序中预热代码路径.或者说引擎盖下有一些魔法会使这种效果无效. 最佳答案 我不建议你这样做.首先,没有给出您可以提供基准测试所需的所有基础结构.例如,不可能提供某些对象,例如Blackhole,因为此类无法从基准外部实例化.其次,无法保证虚拟机的预热结果如你所愿:真正的代码可能会显示略微不同的行为,因此您的基准测试会污染您的配置文件而不是为现实世界准备VM.

为了使VM变暖,从外部提供类似于真实交互的交互几乎总是更好.教一个程序进行自我预热对代码变化非常脆弱,而且几乎从来都不是一个好主意.

点赞