Отчет о фактических настройках ГХ в JVM - PullRequest
0 голосов
/ 07 октября 2019

Как я могу сообщить о настройках GC из Java? Я знаю, что я RuntimeMXBean может сообщить о входных аргументах с помощью getInputArguments () , и я мог бы использовать это, чтобы сообщить о настройках. Я бы предпочел опросить объект GC и сообщить о текущих настройках.

Есть ли способ получить доступ к этим настройкам из Java-приложения?

Следующая команда показывает все виды настроеккоторый я не настраиваю, и я хочу написать небольшое приложение, чтобы проверить достоверность этих настроек

java -XX+PrintCommandLineFlags

1 Ответ

1 голос
/ 07 октября 2019

Один из способов получить список флагов - 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);

    }
}
...