| Назва параметра | значення | Стандартні налаштування/Примітки |
| -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 на першому місці, коли FullGC | false |
| -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 перед викликом YGC | true |
| -XX:+UseConcMarkSweepGC | Використання колекції пам'яті CMS | Після налаштування цього в тесті конфігурація -XX:NewRatio=4 є недійсною, і причина невідома, тому найкраще використовувати -Xmn для встановлення розміру нового покоління на цей момент |
| -XX:+Агресивна купа | Спроба полягає у використанні великої кількості фізичної пам'яті | Оптимізація довготривалого використання великої пам'яті дозволяє перевіряти обчислювальні ресурси (пам'ять, кількість процесорів, щонайменше 256 МБ пам'яті) |
| -XX:CMSFullGCsBeforePressaction | Скільки разів відбувається стиснення пам'яті? | Оскільки конкурентний колектор не стискає та не організовує простір пам'яті, він створює «фрагментацію» після певного часу роботи, що знижує ефективність роботи |
| -XX:+CMSParallelRemarkEnabled | Паузи на нижніх маркерах | / |
| -XX+UseCMSCompactAtFullCollection | Стиснення старості, коли це був FullGC | CMS не переміщує пам'ять, тому дуже легко створити фрагментацію, що призводить до недостатньої пам'яті, тому компресія пам'яті буде увімкнена саме в цей час. Це корисна звичка — збільшувати цей параметр. Це може впливати на продуктивність, але може усунути сміття |
| -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:+PrintClassHistogramBeforeFullGC | FullGC до друку | / |
| -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:+HeapDumpOnOutOfMemoryError | OM при генерації heap dump | Вихідний сигнал за замовчуванням знаходиться у кореневій папці, де зберігаються файли класів |
| -XX:HeapDumpPath | Встановіть шлях до виходу дампу файлу OM | Використовуйте з -XX:+HeapDumpOnOutOfMemoryError |
| Назва параметра | опис | За промовчанням |
| -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> | Відобразіть заставку з вказаним зображенням | / |