How can I see which garbage collector java is using

前端 未结 7 530
离开以前
离开以前 2020-12-10 03:26

The Java Virtual Machine supports several garbage collection strategies.

This article explains them.

Now I am wondering which (automatically selected) strat

7条回答
  •  感动是毒
    2020-12-10 04:20

    You can write simple progam which connects via jmx to your java process:

    public class PrintJMX {
      public static void main(String[] args) throws Exception {
        String rmiHostname = "localhost";
        String defaultUrl = "service:jmx:rmi:///jndi/rmi://" + rmiHostname + ":1099/jmxrmi";
        JMXServiceURL jmxServiceURL = new JMXServiceURL(defaultUrl);
    
        JMXConnector jmxConnector = JMXConnectorFactory.connect(jmxServiceURL);
        MBeanServerConnection mbsc = jmxConnector.getMBeanServerConnection();
    
    
        ObjectName gcName = new ObjectName(ManagementFactory.GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE + ",*");
    
        for (ObjectName name : mbsc.queryNames(gcName, null)) {
          GarbageCollectorMXBean gc = ManagementFactory.newPlatformMXBeanProxy(mbsc,
            name.getCanonicalName(),
            GarbageCollectorMXBean.class);
    
          System.out.println(gc.getName());
        }
    
      }
    }
    

提交回复
热议问题