Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 17284|Відповідь: 1

[Джерело] Параметри JVM Опції

[Копіювати посилання]
Опубліковано 2020-8-31 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-додатку (див. Додаток Стандартна таблиця параметрів VM, різні реалізації JVM відрізняються). java-X може перелічувати нестандартні параметри (які є розширенням JVM). -Опції, пов'язані з X, не є стандартними і не будуть повідомлені при зміні. Якщо хочете побачити параметри JVM, які зараз використовується вашим додатком, можете скористатися: ManagementFactory.getRuntimeMXBean().getInputArguments().

Назва параметразначенняСтандартні налаштування/Примітки
-XMSПочатковий розмір купи1/64 (<1GB) фізичної пам'яті За замовчуванням (параметр MinHeapFreeRatio можна налаштовувати) Коли вільна пам'ять купи менша за 40%, JVM збільшує купу до максимальної межі -Xmx
-XmxМаксимальний розмір купи1/4 фізичної пам'яті (<1GB) за замовчуванням (параметр MaxHeapFreeRatio можна налаштовувати). Коли пам'ять вільної купи перевищує 70%, JVM зменшує купу до мінімального ліміту -xms
-XmnРозмір покоління (JDK 1.4 або вище)Після збільшення нового покоління розмір старого буде зменшений. Ця цінність суттєво впливає на продуктивність системи. Sun офіційно рекомендує конфігурацію на 3/8 усього стеку
-XssРозмір стеку кожного потокуПісля JDK5.0 розмір кожного стека потоку становив 1M, а раніше розмір кожного потоку становив 256K, що могло бути в одиницях K, M або G
-XX:ThreadStackSizeТам же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:ВеликаСторінкаРозмірВБайтиРозмір сторінки пам'яті не слід встановлювати надто великим, оскільки це впливає на розмір Perm=128 м
-XX:+UseFastAccessorMethodsШвидка оптимізація оригінального типу
-XX:+DisableExplicitGCЗакрити System.gc()Цей параметр потребує суворого тестування
-XX: Максимальний поріг постійностіМаксимальний вік сміттяЯкщо встановити 0, об'єкт нового покоління безпосередньо потрапляє в стару епоху, не проходячи через зону Survivor. Для старіших застосувань ефективність можна підвищити. Якщо це значення встановлено на велике, об'єкт нового покоління буде скопіюватися кілька разів у регіоні Survivor, що може збільшити час виживання об'єкта в новому поколінні та підвищити ймовірність повторного використання в новому поколінні, що дійсно лише для серійного GC
-XX:+Агресивні ОптиПрискорення компіляції
-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:MaxGCPauseMillisМаксимальний час збору відходів на нове покоління (максимальний час паузи)Якщо цей час не вдасться, 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:CMSIinitiating OccupancyFraction=70Збір CMS починається після того, як 70% сміття використовується для переробки сміттяЦе значення потрібно встановити таку формулу: CMSInitiatingOccupancyFraction
-XX:CMSIinitiatingPermOccupancyFractionВстановіть використання Perm Gen так, щоб активуватися, коли співвідношення досягнуто92
-XX:+CMSIncrementalModeВстановіть режим інкрементального режимуВикористовується в випадках з одним процесором
-XX:+CMSClassUnloadingEnableПостійний CMS GC
-XX:+PrintGCВихід журналів GCТе саме, що й -verbose:gc
-XX:+PrintGCДetailsТам жеДетальніше
-XX:+PrintGCTimeStampsВихідна часова мітка GCВикористовуйте його з наведеним вище параметром PrintGC або напишіть щось на кшталт -XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStampsМожна змішувати з -XX:+PrintGC -XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTimeЧас, коли програма зупиняється під час збору сміття для друку. Можна змішувати з наведеним вищеФормат виводу: Загальний час зупинки потоків додатків: 0,0468229 секунди
-XX:+PrintGCApplicationConcurrentTimeДрукуйте час безперервного виконання програми перед кожною зборкою сміттяМожна змішати з наведеним вище, форма виходу: час нанесення: 0.5291524 секунди
-XX:+PrintHeapAtGCДрукуйте детальну інформацію про стек до і після GC
-Xloggc:ім'я файлуЗафіксуйте відповідну інформацію журналу у файл для аналізуПрацює з кількома вищезазначеними
-XX:+PrintClassГістограмаПісля натискання Ctrl+Break у консолі друкуйте інформацію про клас
-XX:+PrintClassHistogramBeforeFullGCFullGC до друку
-XX:+PrintTLABПерегляньте використання простору TLAB
XX:+PrintTenuringDistributionПерегляньте поріг нового періоду виживання після кожного незначного ГК
-EAУвімкніть assert assert
-XprofДіагностика продуктивності
-XrunhprofДіагностика продуктивності
-XX:+TraceClassLoadingДрукує інформацію про процес завантаження класівПодібно до [завантажено java.util.AbstractList$Itr з /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingІнформація про процес видалення класу друку
XbootclasspathВизначає завантаження класів, які не потребують перевірокПропуск необхідних попередніх перевірок може скоротити час завантаження, але це небезпечно
-XX:+Друкована компіляціяДрукуйте назву методу, яку Hotspot компілює за допомогою JIT
-XX:+HeapDumpOnOutOfMemoryErrorOM при генерації heap dumpВихідний сигнал за замовчуванням знаходиться у кореневій папці, де зберігаються файли класів
-XX:HeapDumpPathВстановіть шлях до виходу дампу файлу OMВикористовуйте з -XX:+HeapDumpOnOutOfMemoryError

Додаток

[Стандартний аркуш параметрів VM]

Назва параметраописЗа промовчанням
-d32Використовуйте 32-бітну модель даних (якщо доступна)
-d64Використовуйте 64-бітну модель даних (якщо доступна)
-СерверВиберіть серверну віртуальну машинуЗа замовчуванням віртуальна машина — серверна, бо ви працюєте на серверній машині.
-cp < каталог та шлях пошуку класів zip/jar файлів >
-classpath < шлях пошуку класів для каталогів і файлів zip/jar >Використовуйте : список окремих каталогів, архіви JAR та архіви ZIP для пошуку файлів класів
-D<名称>=<值>Властивості системи множин
-Багатослівно: [клас або GC або JNI]Увімкнути детальний вихід
-версіяВиведіть версію продукту та виходьте
-<值>версія:Застарілі
-шоуверсіяВиведіть версію продукту і продовжуйте
-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