提前编译是否需要在jmh中进行预热

  • 本文关键字:jmh 编译 是否 java jmh
  • 更新时间 :
  • 英文 :


我正在阅读一些关于java微基准测试工具的文档,我遇到了这个肯定:

每个在线优化都需要预热,基础知识:预热JIT编译并不是唯一的在线优化。

这个预热阶段对提前编译的vm仍然有用吗?

我认为,"一些文档"是指我的一些基准测试演讲。如果你看过视频,有一个"在线优化"的例子不是JIT编译:GC启发式算法动态适应分配率。

上述断言的要点是,所有进程都具有瞬态响应。当运行时(甚至是完全静态编译的应用程序)从零变为完全执行时,它需要时间来适应新的条件:加载、链接、编译代码、水合应用程序缓存、启动和平衡核心线程、唤醒CPU并确定合理的频率等。所有这些都包含在预热中。之后的下一阶段是稳态,此时系统已完全适应并稳定了瞬态响应。这就是您开始基准测试的地方。

换句话说,"JIT编译不是唯一的在线优化"。

最新更新