在进行 Java 代码性能测试时,您想要测试 JIT 编译的代码,而不是原始字节码。为了使字节码被编译,您必须通过多次执行代码来触发编译,并允许足够的 yield 时间使后台线程完成编译。
- 需要对代码路径进行多少次“预热”执行才能“非常自信”地确保代码将被 JIT 编译?
- 主线程的最小休眠时间是多少,以“非常自信”地确保编译已完成(假设代码块较小)?
我正在寻找一个阈值,在任何现代操作系统中都可以安全应用,例如 Mac OS 或 Windows 用于开发环境,Linux 用于 CI / 生产。
答案:- 至少需要对代码路径进行10次“预热”执行,才能“非常自信”地确保代码将被 JIT 编译
- 主线程的最小休眠时间应该在100毫秒到200毫秒之间,以“非常自信”地确保编译已完成(假设代码块较小)