2

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

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

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

4

1 回答 1

3

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

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

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

于 2015-03-20T21:18:30.897 回答