Java如何禁用特定的编译优化算法(例如GVN)

How does Java disable a specific compilation optimization algorithm (for example GVN)

由于某些原因,我想知道Java中某个特定优化算法(GVN)的效果。

我的想法是 运行 在禁用此算法之前和之后进行基准测试。然后比较时间和space的消耗。但是我不知道如何在 Java 编译中禁用 GVN。

是否有任何编译器参数可以执行此操作?或者有什么其他方法可以找出特定优化算法的效果?

我的 jdk 是 jdk11,具有快速调试版本。谢谢!

GVN 不仅仅是一种优化 - 这是许多其他优化所依赖的基本编译阶段。 HotSpot C2 编译器中没有关闭 GVN 的 JVM 开关。

但是,C1 编译器有一个标志 -XX:-UseGlobalValueNumbering。此标志仅在 JVM 的调试版本中可用。