JVM禁用特定类或方法的内联

jak*_*sky 4 java optimization jvm inlining

我正在尝试编写一些基准来衡量内联方法的效果.有人知道是否可以在HostSpot JVM上禁用内联特定的类或方法?

我发现-XX:-Inline总共禁用内联.

Mic*_*nic 6

您可以使用-XX:CompileCommandJVM选项来控制即时编译.该选项可用于排除要编译的某些方法(或类的所有方法)等.从文档:

指定要对方法执行的命令.例如,indexOf()要从编译中排除String类的方法,请使用以下命令:

-XX:CompileCommand=exclude,java/lang/String.indexOf

如果您只想阻止方法内联,则可以使用dontinline具有相同语法的命令,例如

-XX:CompileCommand=dontinline,java/lang/String.indexOf

流行的Java微基准线束JMH在内部使用相同的JVM选项.