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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM禁用特定类或方法的内联相关的知识,希望对你有一定的参考价值。

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

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

答案

您可以使用-XX:CompileCommand JVM选项来控制即时编译。该选项可用于排除要编译的某些方法(或类的所有方法)等。来自documentation

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

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

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

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

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

以上是关于JVM禁用特定类或方法的内联的主要内容,如果未能解决你的问题,请参考以下文章

HTML <span>标签

javaSE_07_方法

inline内联函数

Java方法的介绍

2C++ 的升级

如何禁用类或整个包的记录器?