在运行时更改JVM JIT选项

在运行时更改JVM JIT选项,jvm,java,jvm-hotspot,Jvm,Java,Jvm Hotspot,是否可以在运行时更改Java JVM(JIT)的选项和/或模式?例如,更改XX:CompileThreshold,甚至在解释代码和编译代码之间切换(-Xcompvs-Xint) 我的JVM来自OpenJDK(1.6)、Hotspot或Zero/Shark,您可以通过更改其中的一些设置 但是,它们中的大多数是只读的。您无法在运行时更改JVM模式,但是您可以在不重新启动JVM的情况下修改某些标志。只需使用JMX客户端(如VisualVM)连接到JVM,并使用com.sun.management:ty

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


我的JVM来自OpenJDK(1.6)、Hotspot或Zero/Shark,您可以通过更改其中的一些设置


但是,它们中的大多数是只读的。

您无法在运行时更改JVM模式,但是您可以在不重新启动JVM的情况下修改某些标志。只需使用JMX客户端(如VisualVM)连接到JVM,并使用
com.sun.management:type=hospotdiagnostic
的操作
setVMOption

例如,如果希望在不重新启动JVM的情况下启用详细的GC日志记录,请调用方法
setVMOptions(“PrintGCDetails”,“true”)

资料来源:


希望有帮助

您是否有任何指向Sun/Oracle站点的链接?并且您确定jvm选项在运行时不能更改?查看建议com.Sun.management.HotSpotDiagnosticXbean#setVMOption(String,String)可以帮助您。但一般来说,我不会依赖它,我可以在运行时改变JVM模式:解释器或JIT;或者一些JIT试探法(例如-XX:CompileThreshold)?