当前位置: 代码迷 >> java >> 在运行时获取JVMs编译器阈值
  详细解决方案

在运行时获取JVMs编译器阈值

热度:130   发布时间:2023-07-18 08:58:06.0

是否有可能在运行时获取JVMs CompileThreshold的当前值?

如果是手动设置,我可以从获取它。 否则我可能会假设默认值(例如服务器上的Oracles HotSpot为10,000),但这可能不正确。 有更好的方法吗?

目的是在启动期间“预热”某些功能。

您可以从HotSpotDiagnosticMXBean检索此信息。

static final String HOTSPOT_BEAN_NAME = "com.sun.management:type=HotSpotDiagnostic";

public static void main(String[] args) throws Exception {
    Class clazz = Class.forName("com.sun.management.HotSpotDiagnosticMXBean");
    MBeanServer server = ManagementFactory.getPlatformMBeanServer();
    HotSpotDiagnosticMXBean bean = (HotSpotDiagnosticMXBean) ManagementFactory
            .newPlatformMXBeanProxy(server, HOTSPOT_BEAN_NAME, clazz);
    VMOption vmOption = bean.getVMOption("CompileThreshold");
    System.out.printf("%s = %s%n", vmOption.getName(), vmOption.getValue());
}

产量

CompileThreshold = 10000
  相关解决方案