В чем разница между параметрами -, -X и параметрами -XX в JVM?
Существует множество параметров для JVM. Некоторые начинаются с -, например, -сервера, -клиента. Некоторые начинаются с -X, например -Xms, -Xmx. Некоторые начинают с -XX, например -XX: PermSize, -XX: UseParallelGC.
Итак, вот мой вопрос. Поскольку эти параметры не дублируются, зачем начинать с так много разных префиксов? Почему бы просто не использовать "-". Я предполагаю, что для этого существуют какие-то стандарты. Параметры -XX являются настройками расширения и не поддерживаются всеми объектами JVM. Это так?
Ответы
Ответ 1
Да, это уровень поддержки. Варианты ванили ( "-" ) поддерживаются в будущих версиях, а X не поддерживаются. Кроме того, опции XX не рекомендуются для случайного использования.
В качестве примера см. документацию IBM JVM: http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix64.60%2Fdiag%2Fappendixes%2Fcmdline%2Fcommands_jvm.html
Ответ 2
Это три основные категории аргументов командной строки:
-
Стандартные параметры. Параметры, которые начинаются с: - стандартные варианты, как ожидается, будут приняты всеми реализациями JVM и стабильны между версиями (хотя они могут быть устаревшими).
-
Нестандартные параметры. Параметры, начинающиеся с -X, нестандартны (не гарантируются для поддержки всех реализаций JVM) и могут быть изменены без уведомления в последующих версиях Java SDK.
-
Параметры разработчика. Параметры, начинающиеся с -XX, являются вариантами разработчика и часто имеют конкретные системные требования для правильной работы и могут требовать привилегированного доступа к параметрам конфигурации системы; они не рекомендуются для случайного использования. Эти параметры также могут быть изменены без предварительного уведомления.
src
Ответ 3
java -help
:
-X Displays information about non-standard options and exit
Ответ 4
- Параметры, начинающиеся с -X, являются нестандартными (не гарантируется, что они поддерживаются во всех реализациях VM), и могут быть изменены без уведомления в последующих выпусках JDK.
- Параметры, указанные в -XX, нестабильны и могут быть изменены без уведомления.
Справочник по Java