报告 JVM 中的实际 GC 设置
Report on Actual GC Settings in JVM
如何报告 java 的 GC 设置?我知道我 RuntimeMXBean 可以通过 getInputArguments() 报告输入参数,我可以用它来报告设置。我宁愿询问 GC 对象并报告那里的实际设置。
有没有办法从 java 应用程序中访问这些设置?
以下命令显示了我没有设置的各种设置,我想写一个小应用程序来验证这些设置的准确性
java -XX+PrintCommandLineFlags
获取标志列表的一种方法是通过 jcmd
MBean。
下面的代码片段打印了 JVM XX 标志
public class GetFlags {
public static void main(String[] args) throws MalformedObjectNameException {
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName name = ObjectName.getInstance("com.sun.management:type=DiagnosticCommand");
DiagnosticCommand_vmFlags vmFlags = JMX.newMXBeanProxy(server, name, DiagnosticCommand_vmFlags.class);
System.out.println("Short version");
System.out.println(vmFlags.vmFlags());
System.out.println("Verbose version");
System.out.println(vmFlags.vmFlags("-all"));
}
public interface DiagnosticCommand_vmFlags {
public String vmFlags(String... args);
}
}
如何报告 java 的 GC 设置?我知道我 RuntimeMXBean 可以通过 getInputArguments() 报告输入参数,我可以用它来报告设置。我宁愿询问 GC 对象并报告那里的实际设置。
有没有办法从 java 应用程序中访问这些设置?
以下命令显示了我没有设置的各种设置,我想写一个小应用程序来验证这些设置的准确性
java -XX+PrintCommandLineFlags
获取标志列表的一种方法是通过 jcmd
MBean。
下面的代码片段打印了 JVM XX 标志
public class GetFlags {
public static void main(String[] args) throws MalformedObjectNameException {
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName name = ObjectName.getInstance("com.sun.management:type=DiagnosticCommand");
DiagnosticCommand_vmFlags vmFlags = JMX.newMXBeanProxy(server, name, DiagnosticCommand_vmFlags.class);
System.out.println("Short version");
System.out.println(vmFlags.vmFlags());
System.out.println("Verbose version");
System.out.println(vmFlags.vmFlags("-all"));
}
public interface DiagnosticCommand_vmFlags {
public String vmFlags(String... args);
}
}