1 回答
TA贡献1780条经验 获得超1个赞
问题是您workload只调用一次并多次执行该循环;你没有执行workload很多次;这是你在这里遇到的主要问题。JIT可以优化方法,但这里只有一个循环 - 因此除非OSR处于活动状态,否则没有太多需要优化的地方。
这很容易证明,您可以使用以下方法运行您的方法:
-XX:+UnlockDiagnosticVMOptions
-XX:TieredStopAtLevel=1
-XX:+TraceNMethodInstalls // this is to track the compiled methods
-XX:-UseOnStackReplacement
com.so.jit.OSRCompilation // this is the classname I've used
在您将获得的输出中,您会看到很多Installing method.
但是,如果您启用OSR:
-XX:+UnlockDiagnosticVMOptions
-XX:TieredStopAtLevel=1
-XX:+TraceNMethodInstalls // this is to track the compiled methods
-XX:+UseOnStackReplacement
com.so.jit.OSRCompilation // this is the classname I've used
你会得到很多Installing method,而且还有一行:
Installing osr method (1) com.so.jit.OSRCompilation.workload()I @ 5
添加回答
举报