Изменить параметры JIT JVM во время выполнения

Можно ли изменить параметры и/или режимы Java JVM (JIT) во время выполнения? Например. измените XX:CompileThreshold или даже переключитесь между интерпретируемым и скомпилированным кодом (-Xcomp против -Xint).

Моя JVM из OpenJDK (1.6), Hotspot или Zero/Shark


person osgx    schedule 31.05.2013    source источник


Ответы (2)


Вы не можете изменить режим JVM во время выполнения, однако вы можете изменить некоторые флаги без перезапуска JVM. Просто подключитесь к JVM с помощью клиента JMX (например, VisualVM) и используйте операцию setVMOption из com.sun.management:type=HotSpotDiagnostic.

Например, если вы хотите включить подробное ведение журнала GC без перезапуска JVM, вызовите метод 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

Надеюсь, это поможет !

person Pierre Laporte    schedule 02.06.2013
comment
Могу ли я во время выполнения изменить режим JVM: интерпретатор или JIT; или некоторые эвристики JIT (например, -XX:CompileThreshold)? - person osgx; 03.06.2013

Вы можете изменить некоторые из этих параметров с помощью MBeans. .

Однако большинство из них доступны только для чтения.

person jontejj    schedule 31.05.2013
comment
У вас есть ссылки на сайт Sun/Oracle? - person osgx; 31.05.2013
comment
А вы уверены, что параметры jvm нельзя изменить во время выполнения? - person osgx; 31.05.2013
comment
Глядя на stackoverflow.com/questions/1754077/ предполагает, что com.sun.management.HotSpotDiagnosticMXBean#setVMOption(String, String) может вам помочь. Но в целом я бы не стал на это полагаться. - person jontejj; 01.06.2013