2013-05-31 61 views
4

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

我的JVM是由OpenJDK的(1.6),热点或零/鲨鱼

回答

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

希望帮助!

+0

我可以在运行时更改JVM模式:解释器或JIT;或者一些JIT启发式(例如-XX:CompileThreshold)? – osgx

+1

嗯,我只是回答了... –

2

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

其中大多数是只读的。

+0

您有任何指向Sun/Oracle站点的链接? – osgx

+0

更新了链接。 – jontejj

+0

你确定在运行时不能更改jvm选项吗? – osgx