我正在尝试编写一些基准来衡量内联方法的效果。有人知道是否可以在 HostSpot JVM 上禁用特定类或方法的内联?
我发现-XX:-Inline
总共禁用了内联。
我正在尝试编写一些基准来衡量内联方法的效果。有人知道是否可以在 HostSpot JVM 上禁用特定类或方法的内联?
我发现-XX:-Inline
总共禁用了内联。
您可以使用-XX:CompileCommand
JVM 选项来控制即时编译。该选项可用于排除某些要编译的方法(或类的所有方法)等。从文档中:
指定要对方法执行的命令。例如,
indexOf()
要从编译中排除 String 类的方法,请使用以下命令:
-XX:CompileCommand=exclude,java/lang/String.indexOf
如果您只想防止方法内联,您可以使用dontinline
具有相同语法的命令,例如
-XX:CompileCommand=dontinline,java/lang/String.indexOf
流行的 Java 微基准测试工具JMH在内部使用相同的 JVM 选项。