我有许多需要高性能的代码路径基准。我的 Jmh 微基准测试的预热迭代比我在生产中编写的预热代码更有效。我的问题是,我可以导出我的基准测试并通过 Java api 调用它们,以便在真实的实时应用程序中预热代码路径。还是引擎盖下有一些魔法会使它无效。
最佳答案
我不建议你这样做。首先,并不是说您可以提供基准测试所需的所有基础设施。例如,不可能提供某些对象,例如 Blackhole
,因为此类无法从基准测试之外实例化。其次,不能保证 VM 的预热结果如您所愿:实际代码可能表现出略有不同的行为,因此您进行基准测试而不是污染您的配置文件,而不是为 真实世界.
为了预热虚拟机,从外部提供类似于真实交互的交互几乎总是更好。教程序进行 self 热身 对代码更改非常脆弱,几乎不是一个好主意。
关于java - 我可以使用已经编写的 Jmh 微基准来预热生产代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671103/