Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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) Опцията за параметър String се задава от -XX:=, което обикновено се използва за задаване на файл, път или списък с команди. (например -XX:HeapDumpPath=./java_pid.hprof) команда java-help може да изброи стандартните опции за стартиране на java приложение (виж Приложение Стандартна таблица с параметри на виртуалната машина, различните реализации на 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:НишкаСтекРазмерТам0 означава, че се използва стойността по подразбиране и тя не може да бъде обединена
-XX:PermSizeЗадайте началната стойност на перманентната алгебра1/64 от физическата памет
-XX:MaxPermSizeЗадайте максималното постоянно генериране1/4 от физическата памет
-XX:НовоСъотношениеСъотношение между кайнозой (включително Едем и две зони на оцелели) към старост (без постоянна генерация)-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. За по-стари приложения ефективността може да се подобри. Ако тази стойност бъде зададена на голяма, новогенерационният обект ще бъде копиран многократно в региона Survivor, което може да увеличи времето за оцеляване на обекта в новото поколение и да увеличи вероятността да бъде рециклиран в новото поколение, което важи само за серийния GC
-XX:+АгресивниOptsУскоряване на компилацията
-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:+ИзползвайАдаптивенРазмерПолитикаАвтоматично изберете размера на новата генерационна зона и съответното съотношение на оцелелитеКогато тази опция е зададена, паралелният колектор автоматично избира размера на новата генерационна площ и съответната пропорция на зоната на оцелелите, за да постигне минималното съответно време или честота на събиране, определени от целевата система
-XX:GCTimeRatioЗадайте времето за събиране на боклука като процент от времето за изпълнение на програматаФормулата е 1/(1+n)
-XX:+ScavengeBeforeFullGCПълен GC преди да се обадя на YGCtrue
-XX:+UseConcMarkSweepGCИзползване на колекцията от CMS паметСлед конфигуриране на това в теста, конфигурацията на -XX:NewRatio=4 е невалидна и причината е неизвестна, затова е най-добре да се използва -Xmn за задаване на размера на новото поколение в момента
-XX:+Агресивна купчинаОпитът е да се използва много физическа паметОптимизация на дългосрочното използване на голяма памет, може да се провери изчислителните ресурси (памет, брой процесори, поне 256MB памет) е необходима
-XX:CMSFullGCsBeforeCompactionКолко пъти се случва компресиране на паметта?Тъй като конкурентният колектор не компресира и организира паметното пространство, той ще произведе "фрагментация" след определен период на работа, което намалява ефективността на работа
-XX:+CMSParallelRemarkEnabledПаузи в долния маркер
-XX+UseCMSCompactAtFullCollectionКомпресия на старостта, когато беше FullGCCMS не премества паметта, така че е много лесно да се създаде фрагментация, което води до недостатъчна памет, затова компресията на паметта ще бъде активирана в този момент. Добър навик е да се увеличава този параметър. Може да повлияе на производителността, но може да премахне отпадъците
-XX:+UseCMSIinitiatingOccupancyOnlyЗапочнете CMS колекцията с ръчна инициализация на дефинициятаHostSpot е забранено да задейства CMS GC самостоятелно
-XX:CMSIinitiating OccupancyFraction=70Събирането на CMS започва след като 70% от боклука се използва за рециклиране на отпадъциТази стойност трябва да бъде зададена така, че да отговаря на следната формула: CMSInitiatingOccupancyFraction
-XX:CMSIinitiating PermOccupancyFractionНастрой използването на Perm Gen да се задейства, когато съотношението се достигне92
-XX:+CMSIncrementalModeНастроен на инкрементален режимИзползва се в случаи с един процесор
-XX:+CMSClassUnloadingEnabledПостоянен CMS GC
-XX:+PrintGCGC лог изходСъщото като -verbose:gc
-XX:+PrintGCDetailsТамПовече подробности
-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:filenameЛогирайте съответната лог информация във файл за анализРаботи с горните няколко
-XX:+PrintClassHistogramСлед натискане на Ctrl+Break в конзолата, отпечатайте информацията за класа
-XX:+PrintClassHistogramBeforeFullGCFullGC преди печат
-XX:+PrintTLABВижте използването на TLAB пространството
XX:+PrintTenuringDistributionВижте прага за новия период на оцеляване след всеки малък GC
-EAВключи assert assert
-XprofДиагностика на производителността
-XrunhprofДиагностика на производителността
-XX:+TraceClassLoadingПечата информация за процеса на зареждане на класовеПодобно на [Loaded java.util.AbstractList$Itr от /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingИнформация за процеса на деинсталиране от клас печат
XbootclasspathОпределя зареждането на класове, които не изискват проверкиПропускането на необходимите предварителни проверки може да намали времето за зареждане, но не е безопасно
-XX:+PrintCompilationОтпечатайте името на метода, което Hotspot компилира с помощта на JIT
-XX:+HeapDumpOnOutOfMemoryErrorOM при генериране на heap dumpПо подразбиране изходът е в основната папка, където се съхраняват класовите файлове
-XX:HeapDumpPathЗадайте изходния път на изходния OM dump файлИзползване с -XX:+HeapDumpOnOutOfMemoryError

Приложение

[Стандартен лист с параметри на VM]

Име на параметъраописаниеПо подразбиране
-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>Покажете splash екрана с зададеното изображение






Предишен: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