java - 我可以使用已经编写的 Jmh 微基准来预热生产代码吗

标签 java jmh

我有许多需要高性能的代码路径基准。我的 Jmh 微基准测试的预热迭代比我在生产中编写的预热代码更有效。我的问题是,我可以导出我的基准测试并通过 Java api 调用它们,以便在真实的实时应用程序中预热代码路径。还是引擎盖下有一些魔法会使它无效。

最佳答案

我不建议你这样做。首先,并不是说您可以提供基准测试所需的所有基础设施。例如,不可能提供某些对象,例如 Blackhole,因为此类无法从基准测试之外实例化。其次,不能保证 VM 的预热结果如您所愿:实际代码可能表现出略有不同的行为,因此您进行基准测试而不是污染您的配置文件,而不是为 真实世界.

为了预热虚拟机,从外部提供类似于真实交互的交互几乎总是更好。教程序进行 self 热身 对代码更改非常脆弱,几乎不是一个好主意。

关于java - 我可以使用已经编写的 Jmh 微基准来预热生产代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671103/

相关文章:

java - JVM native 内存跟踪如何限制类元数据大小

java - 非宽松模式中的 SimpleDateFormat 在解析有效日期时抛出 ParseException

java - 如何使用 JMH 按顺序运行基准测试中的方法?

java - 来自文件的 JMH 参数

java - 我该怎么做 "one-many"关系?

java - 如何查找值为 X 的节点的父节点

java - 在 Android 平板电脑上调用 getSimCountryIso() 时会发生什么?

Java 微基准测试工具与 System.getNanotime()

java - jmh 表示 M1 比 M2 快,但 M1 委托(delegate)给 M2

java - 装箱与创建 1 个元素的数组