Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 17284|Ответ: 1

[Источник] Параметры JVM Опции

[Скопировать ссылку]
Опубликовано 31.08.2020 22:20:25 | | |
Параметры JVM делятся на три части, основанные на параметрах JVM, начиная с -X или -XX:
1. Начиная с -, стандартная опция VM, опция спецификации VM;
2. Параметры, начинающиеся с -X, являются нестандартными (эти параметры не гарантируются реализацией на всех JVM), и если в новой версии будут изменения, уведомление не будет выпущено.
3. Те, что начинаются с -XX, нестабильны и не рекомендуются для использования в производственных средах. Изменения в этих параметрах также не будут уведомлены. Параметры Bool: -XX:+ включено, -XX:- выключено. (например, -XX:+PrintGCDetails) Опция числового параметра задаётся -XX:=. Числа могут быть m/m (мегабайты), k/k (килобайты), g/g (g-байты). Например: 32K означает 32768 байт. (например, -XX:MaxPermSize=64m) Опция параметра строки задаётся -XX:=, которая обычно используется для указания файла, пути или списка команд. (например, -XX:HeapDumpPath=./java_pid.hprof) команда java-help может перечислять стандартные опции для запуска java-приложений (см. таблицу параметров стандартных виртуальных машин в приложении, разные реализации JVM различаются). java-X может перечислять нестандартные параметры (что является расширением JVM). -Варианты, связанные с X, не являются стандартными и не будут уведомлены при их изменении. Если вы хотите увидеть параметры JVM, которые сейчас используется вашим приложением, можно воспользоваться: ManagementFactory.getRuntimeMXBean().getInputArguments().

Название параметразначениеСтандарты/Примечания
-XMSНачальный размер кучи1/64 (<1 ГБ) физической памяти По умолчанию (параметр MinHeapFreeRatio можно настраивать) Когда свободная память кучи меньше 40%, JVM увеличивает кучу до максимального предела -Xmx
-XMXМаксимальный размер кучи1/4 физической памяти (<1 ГБ) по умолчанию (параметр MaxHeapFreeRatio можно настраивать) Когда свободная память кучи превышает 70%, JVM уменьшает кучу до минимального предела -xms
-XMNРазмер поколения (JDK 1.4 и выше)После увеличения численности нового поколения размер старого поколения будет уменьшен. Это значение существенно влияет на производительность системы. Sun официально рекомендует конфигурацию на 3/8 от всего стека
-ХсссРазмер стека каждого потокаПосле JDK5.0 размер каждого стека потоков составлял 1M, а ранее размер каждого стека потока составлял 256K, что может быть в единицах K, M или G
-XX:ПотокСтекРазмерТам же0 означает, что используется значение по умолчанию, и его нельзя объединить
-XX:PermSizeУстановите начальное значение постоянной алгебры1/64 физической памяти
-XX:MaxPermSizeУстановите максимальную постоянную генерацию1/4 физической памяти
-XX:NewRatioСоотношение кайнозоя (включая Эдем и две зоны выживших) к старости (без учёта постоянного поколения)-XX:NewRatio=4 означает, что отношение кайнозоя к старому веку равно 1:4, и кайнозой охватывает 1/5 всего стека, Xms=Xmx и Xmn устанавливаются, этот параметр не обязательно устанавливать.
-XX: Соотношение выжившихСоотношение размеров района Эдем к району ВыжившихЕсли установить 8, соотношение двух регионов выживших к одному региону Эдема составляет 2:8, и один регион выжившего составляет 1/10 всего кайнозоя
-XX:LargePageSizeInBytesРазмер страницы памяти не стоит устанавливать слишком большим, так как это влияет на размер Perm=128 м
-XX:+UseFastAccessorMethodsБыстрая оптимизация исходного типа
-XX:+DisableExplicitGCЗакрыть System.gc()Этот параметр требует строгого тестирования
-XX: Максимальный порог постоянстваМаксимальный возраст мусораЕсли выставить 0, объект нового поколения войдёт в старую эру напрямую, не проходя через область выживших. Для старых применений эффективность может быть повышена. Если это значение установлено на большое значение, объект нового поколения будет копироваться несколько раз в области Survivor, что может увеличить время выживания объекта в новом поколении и увеличить вероятность повторного использования в новом поколении, что действует только для серийного ГК
-XX:+AggressiveOptsУскорение компиляции
-XX:+UseBiasedLockingУлучшения производительности механизмов блокировки
-XnoclassgcОтключение переработки мусора
-XX:SoftRefLRUPolicyMSPerMBВремя выживания SoftReference на мегастопку свободного пространства1s
-XX:PretenureSizeThresholdРазмер объекта напрямую распределён с возрастомДругой случай, когда новое поколение использует Parallel Scavenge GC, недопустим, а ещё один случай, когда он был напрямую назначен в старину, — это большой массив без внешних эталонных объектов в массиве.
-XX:TLABWasteTargetPercentПроцент TLAB в районе Эдена1%
-XX:+CollectGen0FirstБудет ли YGC на первом месте, когда FullGCfalse
-XX:+UseParallelGCПолный GC использует параллельный MSCСм. [Параметры GC][1]
-XX:+UseParNewGCНастройка нового поколения для параллельного сбораОн может использоваться вместе с CMS collection, JDK 5.0 или новее, и JVM устанавливает его в соответствии с конфигурацией системы, поэтому нет необходимости устанавливать это значение снова
-XX:ParallelGCThreadsКоличество резьбы для параллельного коллектораЭто значение лучше всего настраивать равным количеству процессоров и также подходит для CMS
-XX:+UseParallelOldGCСтарый метод сбора мусора назывался параллельным компактированиемЭто параметр, который появляется в JAVA 6
-XX:MaxGCPauseМиллисМаксимальное время сбора отходов нового поколения (максимальное время паузы)Если это время не будет выполнено, JVM автоматически изменит размер нового поколения для достижения этого значения.
-XX:+UseAdaptiveSizePolicyАвтоматически выбирайте размер новой зоны генерации и соответствующее соотношение зоны выжившихКогда эта опция установлена, параллельный коллектор автоматически выбирает размер новой площади генерации и соответствующую долю площади выживших для достижения минимального соответствующего времени или частоты сбора, установленных целевой системой
-XX:GCTimeRatioУстановите время сбора мусора в процентах от времени работы программыФормула равна 1/(1+n)
-XX:+ScavengeBeforeFullGCПолный GC перед звонком в YGCtrue
-XX:+UseConcMarkSweepGCИспользование коллекции памяти CMSПосле настройки этого в тесте конфигурация -XX:NewRatio=4 недействительна, причина неизвестна, поэтому лучше использовать -Xmn для установки размера нового поколения на данный момент
-XX:+Агрессивная кучаПопытка — использовать много физической памятиДля оптимизации долгосрочного использования большой памяти требуется проверка вычислительных ресурсов (память, количество процессоров, не менее 256 МБ памяти)
-XX:CMSFullGCsBeforePressactionСколько раз происходит сжатие памяти?Поскольку конкурентный коллектор не сжимает и не организует пространство памяти, он создаёт «фрагментацию» после определённого времени, что снижает эффективность работы
-XX:+CMSParallelRemarkEnabledПаузы нижнего маркера
-XX+UseCMSCompactAtFullCollectionКомпрессия старости, когда это был FullGCCMS не перемещает память, поэтому очень легко создать фрагментацию, что приводит к недостатку памяти, поэтому в этот момент будет включена компрессия памяти. Это хорошая привычка — увеличивать этот параметр. Это может повлиять на производительность, но устранить мусор
-XX:+UseCMSIinitiatingOccupancyOnlyНачните сбор CMS с ручной инициализации определенияHostSpot запрещён самостоятельно запускать CMS GC
-XX:CMSIinitiatingOccupancyFraction=70Сбор CMS начинается после того, как 70% мусора используется для переработки мусораЭто значение должно быть установлено так, чтобы соответствовать следующей формуле: CMSInitiatingOccupancyFraction
-XX:CMSIinitiatingPermOccupancyFractionУстановите использование Perm Gen так, чтобы срабатывать при достижении соотношения92
-XX:+CMSIncrementalModeПереведите режим инкрементального режимаИспользуется в корпусах с одним процессором
-XX:+CMSClassUnloadingEnabledПостоянный CMS GC
-XX:+PrintGCВывод логарифма GCТо же самое, что и -verbose:gc
-XX:+PrintGCДetailsТам жеПодробнее
-XX:+PrintGCTimeStampsВыходная метка времени GCИспользуйте его с указанным выше параметром PrintGC или напишите что-то вроде -XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStampsМожно смешивать с -XX:+PrintGC -XX:+PrintGCДetails
-XX:+PrintGCApplicationStoppedTimeВремя, когда программа останавливается во время сбора мусора для печати. Можно смешивать с вышеуказаннымФормат вывода: общее время остановки потоков приложений: 0,0468229 секунды
-XX:+PrintGCApplicationConcurrentTimeПечатайте время непрерывного выполнения программы перед каждым сбором мусораМожно смешивать с вышеуказанным, выходная форма: время нанесения: 0,5291524 секунды
-XX:+PrintHeapAtGCРаспечатайте подробную информацию о стеке до и после GC
-Xloggc:имя файлаЛогируйте соответствующую информацию журнала в файл для анализаРаботает с перечисленными выше
-XX:+PrintClassHistogramПосле нажатия Ctrl+Break в консоли выведите информацию о классе
-XX:+PrintClassHistogramBeforeFullGCFullGC до печати
-XX:+PrintTLABПросмотр использования пространства TLAB
XX:+PrintTenuringDistributionПросмотр порога нового периода выживания после каждого малого ГК
-EAВключить assert assert
-XprofДиагностика производительности
-XrunhprofДиагностика производительности
-XX:+TraceClassLoadingПечатает информацию о процессе загрузки классовПохоже на [Loaded java.util.AbstractList$Itr from /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingИнформация о процессе удаления класса печати
XbootclasspathЗадаёт загрузку классов, не требующих проверокПропуск необходимых преднагрузочных проверок может сократить время загрузки, но это небезопасно
-XX:+PrintCompilationПечатайте имя метода, которое Hotspot компилирует с помощью JIT
-XX:+HeapDumpOnOutOfMemoryErrorOM при генерации куча дампаВывод по умолчанию находится в корневой папке, где хранятся файлы классов
-XX:HeapDumpPathЗадайте выходной путь дампа OMИспользование с -XX:+HeapDumpOnOutOfMemoryError

Приложение

[Стандартный лист параметров виртуальной машины]

Название параметраописаниеПо умолчанию
-d32Используйте 32-битную модель данных (если она есть)
-d64Используйте 64-битную модель данных (если она есть)
-серверВыберите серверную виртуальную машинуПо умолчанию виртуальная машина — серверная, потому что вы работаете на серверной машине.
-cp < каталог и поиск классов zip/jar файлов >
-classpath < путь поиска классов для каталогов и файлов zip/jar >Используйте : список отдельных каталогов, архивы JAR и архивы ZIP для поиска файлов классов
-D<名称>=<值>Свойства системы множеств
-многословно: [класс или GC или JNI]Включить подробный вывод
-ВерсияВывод версии продукта и выход
-<值>версия:Устаревшие
-ShowversionВыведите версию продукта и продолжите
-jre-restrict-search или -no-jre-restrict-searchУстаревшие
-? -СправкаВыведите это сообщение помощи
-XПомощь с выходом с нестандартными опциями
-ea[:< название посылки, название класса>]assert
-enableassertions[:< название пакета, имя класса>]Включите утверждения при заданной детализированности
-da[:< название пакета, название класса>]
-disableassertions[:< название пакета, название класса>]Отключить утверждения с заданной гранулярностью
-esa или -enablesystemassertionsВключить системные утверждения
-DSA или -disablesystemassertionsОтключить утверждения системы
-agentlib:<libname>[=<选项>]Загрузите нативную библиотеку <libname>агентовНапример, -agentlib:hprofСм. также -agentlib:jdwp=help и -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]Загрузите локальную библиотеку агентов по полному названию пути
-javaagent:<jarpath>[=<选项>]Для загрузки агента языка программирования Java см. java.lang.instrument
-всплеск:<imagepath>Покажите заставку с указанным изображением






Предыдущий:Nuget Series 1 использует asp.net для создания приватного репозитория Nuget
Следующий:Mysql CURRENT_TIMESTAMP и ON UPDATE CURRENT_TIMESTAMP отличаются
 Хозяин| Опубликовано 2022-1-13 09:50:32 |


Примечание: -Xms256m -Xmx1536m нельзя разместить после параметра jar!
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com