运行时更改JVM JIT选项

4

是否可以在运行时更改Java JVM(JIT)的选项和/或模式?例如,更改XX:CompileThreshold,甚至在解释和编译代码之间切换(-Xcomp-Xint)。

我的JVM来自OpenJDK(1.6),Hotspot或Zero / Shark。

2个回答

7
您无法在运行时更改JVM模式,但是您可以修改一些标志而无需重新启动JVM。只需使用JMX客户端(如VisualVM)连接到JVM,并使用com.sun.management:type = HotSpotDiagnostic的操作setVMOption即可。例如,如果要在不重新启动JVM的情况下启用详细的GC日志记录,请调用方法setVMOptions(“PrintGCDetails”,“true”)
来源:http://docs.oracle.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html#setVMOption%28java.lang.String,%20java.lang.String%29 希望这有所帮助!

我能在运行时更改JVM模式:解释器或JIT;或一些JIT启发式算法(例如-XX:CompileThreshold)吗? - osgx

3

您可以通过MBeans更改其中一些设置。

但大多数设置都是只读的。


你有Sun/Oracle网站的链接吗? - osgx
你确定在运行时不能更改JVM选项吗? - osgx
1
查看https://dev59.com/03I-5IYBdhLWcg3woJ9J,建议使用com.sun.management.HotSpotDiagnosticMXBean#setVMOption(String, String)。但一般情况下,我不会依赖它。 - jontejj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接