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