【问题标题】:Does Ahead Of Time compilation need warmup in jmh?提前编译是否需要在 jmh 中预热?
【发布时间】:2015-03-20 15:51:22
【问题描述】:

我正在阅读一些关于 java microbenchmark 工具的文档,我得到了这个肯定:

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

这个预热阶段对于提前编译的虚拟机仍然有用吗?

【问题讨论】:

    标签: java jmh


    【解决方案1】:

    我认为“一些文件”是指我的一些基准测试。如果您看过视频,这里有一个不是 JIT 编译的“在线优化”示例:动态适应分配率的 GC 启发式。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-23
      • 2020-09-29
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多