Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 17284|Odpowiedź: 1

[Źródło] Parametry JVM Opcje

[Skopiuj link]
Opublikowano 31.08.2020 22:20:25 | | |
Dzielimy parametry JVM na trzy części na podstawie parametrów JVM, zaczynając od -X lub -XX:
1. Zaczynając od -, standardowej opcji VM, opcją specyfikacji VM;
2. Te zaczynające się od -X są niestandardowe (te parametry nie są gwarantowane we wszystkich JVM), a jeśli w nowej wersji nastąpią jakiekolwiek zmiany, nie zostanie wydane powiadomienie.
3. Te, które zaczynają się od -XX, są niestabilne i nie są zalecane do stosowania w środowiskach produkcyjnych. Zmiany tych parametrów również nie będą powiadamiane. Opcje parametrów bool: -XX:+ włączony, -XX:- wyłączony. (np. -XX:+PrintGCDetails) Opcja parametrów numerycznych jest ustawiona jako -XX:=. Liczby mogą być m/m (megabajty), k/k (kilobajty), g/g (g-bajty). Na przykład: 32K oznacza 32768 bajtów. (np. -XX:MaxPermSize=64m) Opcja parametru String jest ustawiona przez -XX:=, co zwykle służy do określenia pliku, ścieżki lub listy poleceń. (np. -XX:HeapDumpPath=./java_pid.hprof) polecenie java -help może wymienić standardowe opcje uruchamiania aplikacji Java (patrz Załącznik Standardowa tabela parametrów VM, różne implementacje JVM są różne). java -X może wymieniać niestandardowe parametry (co jest rozszerzeniem JVM). -Opcje związane z X nie są standardowe i nie zostaną powiadomione, jeśli zostaną zmienione. Jeśli chcesz zobaczyć parametry JVM używane obecnie przez Twoją aplikację, możesz użyć: ManagementFactory.getRuntimeMXBean().getInputArguments().

Nazwa parametruznaczenieDomyślne uwagi/Uwagi
-XMSPoczątkowy rozmiar kopca1/64 (<1GB) pamięci fizycznej Domyślnie (parametr MinHeapFreeRatio można regulować) Gdy wolna pamięć kopca jest mniejsza niż 40%, JVM zwiększa stos aż do maksymalnego limitu -Xmx
-XmxMaksymalny rozmiar sterty1/4 pamięci fizycznej (<1GB) domyślnie (parametr MaxHeapFreeRatio można dostosować) Gdy wolna pamięć kopca przekracza 70%, JVM zmniejsza stos aż do minimalnego limitu -xms
-XmnRozmiar generacji (JDK 1.4 lub wyższy)Po zwiększeniu nowej generacji rozmiar starej generacji zostanie zmniejszony. Ta wartość ma istotny wpływ na wydajność systemu. Sun oficjalnie zaleca taką konfigurację do 3/8 całego stosu
-XssRozmiar stosu każdego wątkuPo JDK5.0 każdy rozmiar stosu wątków wynosił 1M, a wcześniej każdy stos 256K, co może być w jednostkach K, M lub G
-XX:ThreadStackSizeIbid0 oznacza, że używana jest wartość domyślna i nie można jej połączyć
-XX:PermSizeUstaw początkową wartość algebry permanentnej1/64 pamięci fizycznej
-XX:MaxPermSizeUstaw maksymalną generację stałą1/4 pamięci fizycznej
-XX:NewRatioStosunek kenozoiku (w tym Eden i dwie strefy przetrwania) do starości (z wyłączeniem stałego pokolenia)-XX:NewRatio=4 oznacza, że stosunek kenozoiku do starości wynosi 1:4, a kenozoik odpowiada za 1/5 całego stosu, Xms=Xmx i Xmn jest ustawiony, więc ten parametr nie musi być ustawiany.
-XX:SurvivorRatioStosunek wielkości obszaru Eden do obszaru SurvivorJeśli ustawimy na 8, stosunek dwóch regionów Ocalałych do jednego regionu Edenu wynosi 2:8, a jeden region Ocalałych stanowi 1/10 całego Cenozoiku
-XX:LargePageSizeInBytesRozmiar strony pamięci nie powinien być ustawiony zbyt duży, ponieważ wpłynie to na rozmiar Perm=128m
-XX:+UżyjFastAccessorMethodsSzybka optymalizacja oryginalnego typu
-XX:+DisableExplicitGCClose System.gc()Ten parametr wymaga rygorystycznych testów
-XX:Maksymalnypróg trwaniaMaksymalny wiek śmieciJeśli ustawisz na 0, obiekt nowej generacji wejdzie bezpośrednio do starej ery, nie przechodząc przez obszar Survivor. W starszych zastosowaniach wydajność można poprawić. Jeśli wartość ta zostanie ustawiona na dużą wartość, obiekt nowej generacji będzie kopiowany wielokrotnie w regionie Survivor, co może wydłużyć czas przeżycia obiektu w nowej generacji oraz zwiększyć prawdopodobieństwo recyklingu w nowej generacji, co jest ważne tylko dla seryjnego GC
-XX:+AggressiveOptsPrzyspieszenie kompilacji
-XX:+UżyjStronniczBlokowanieUlepszenia wydajności mechanizmów blokujących
-XnoclassgcWyłącz recykling śmieci
-XX:SoftRefLRUPolicyMSPerMBCzas przetrwania SoftReference na megastos wolnej przestrzeni1
-XX:Próg rozmiaru pretenureRozmiar obiektu jest bezpośrednio rozkładany w starościInny przypadek, gdy nowa generacja używa Parallel Scavenge GC, jest nieprawidłowy, a inny, gdy jest on bezpośrednio przypisany w starym wieku, to duży obiekt tablicy bez zewnętrznych obiektów odniesienia w tablicy.
-XX:TLABWasteTargetPercentageProcent TLAB w rejonie Eden1%
-XX:+CollectGen0FirstCzy YGC jest pierwsze, gdy FullGCfalse
-XX:+UżyjRównoległegoGCPełny GC wykorzystuje równoległy MSCZobacz [Parametry GC][1]
-XX:+UseParNewGCUstawienie nowego pokolenia do równoległego zbieraniaMoże być używany razem z kolekcją CMS, JDK 5.0 lub nowszym, a JVM ustawia ją zgodnie z konfiguracją systemową, więc nie ma potrzeby ponownego ustawiania tej wartości
-XX:ParallelGCThreadsLiczba gwintów kolektora równoległegoWartość tę najlepiej konfigurować tak, aby odpowiadała liczbie procesorów i jest również odpowiednia dla CMS
-XX:+UżyjParallelOldGCStara metoda zbierania śmieci to równoległe kompaktowanieTo jest opcja parametrów, która pojawia się w JAVA 6
-XX:MaxGCPauseMillisMaksymalny czas na zbiór odpadów nowej generacji (maksymalny czas przerwy)Jeśli ten czas nie zostanie dotrzymany, JVM automatycznie zmieni rozmiar nowej generacji, aby spełniła tę wartość.
-XX:+UżyjAdaptiveSizePolicyAutomatycznie wybierz rozmiar obszaru nowego pokolenia oraz odpowiedni stosunek obszaru ocalałegoGdy ta opcja zostanie ustawiona, równoległy kolektor automatycznie wybiera rozmiar nowego obszaru generowania oraz odpowiadającą proporcję obszaru przeżywającego, aby osiągnąć minimalny odpowiedni czas lub częstotliwość zbierania określoną przez docelowy system
-XX:GCTimeRatioUstaw czas wywozu śmieci jako procent czasu działania programuWzór to 1/(1+n)
-XX:+ScavengeBeforeFullGCPełne GC przed wezwaniem do YGCtrue
-XX:+UżyćConcMarkSweepGCKorzystanie z kolekcji pamięci CMSPo skonfigurowaniu tego w teście konfiguracja -XX:NewRatio=4 jest nieprawidłowa, a przyczyna jest nieznana, dlatego najlepiej użyć -Xmn do ustawienia rozmiaru nowej generacji w tym momencie
-XX:+Agresywny StosPróba polega na wykorzystaniu dużej ilości pamięci fizycznejWymagana jest optymalizacja długoterminowego dużego zużycia pamięci, możliwość sprawdzania zasobów obliczeniowych (pamięć, liczba procesorów, co najmniej 256MB pamięci).
-XX:CMSFullGCsPrzedKompaktowaniemIle razy dochodzi do kompresji pamięci?Ponieważ współbieżny kolektor nie kompresuje i nie organizuje przestrzeni pamięci, po pewnym czasie pracy powoduje "fragmentację", co obniża efektywność działania
-XX:+CMSParallelRemarkEnabledDolny marker zatrzymuje się
-XX+UżyjCMSCompactAtFullCollectionKompresja starości, gdy była FullGCCMS nie przenosi pamięci, więc bardzo łatwo jest wywołać fragmentację, co skutkuje niewystarczającą pamięcią, dlatego kompresja pamięci jest obecnie włączona. To dobry nawyk, by zwiększać ten parametr. Może to wpływać na wydajność, ale może wyeliminować zanieczyszczenia
-XX:+UżyćCMSIinicjacijObecnośćTylkoRozpocznij zbieranie CMS od ręcznej inicjalizacji definicjiHostSpot nie może samodzielnie wyzwalać CMS GC
-XX:CMSIinicjującOccupancyFraction=70Odbiór przez CMS rozpoczyna się po tym, jak 70% odpadów zostanie wykorzystane jako recykling odpadówWartość tę należy ustawić tak, aby spełniała następujący wzór, CMSInitiatingOccupancyFraction
-XX:CMSIinicjującUłamekUłamObecnościUstaw użycie Perm Gen tak, aby aktywowało się po osiągnięciu stosunku92
-XX:+CMSInckrementalModeUstaw tryb przyrostowyStosowane w obudowach z pojedynczym procesorem
-XX:+CMSClassUnloadingEnabledStały CMS GC
-XX:+PrintGCWyjście loga GCTak samo jak -verbose:gc
-XX:+PrintGCDetailsIbidWięcej szczegółów
-XX:+PrintGCTimeStampsZnacznik czasu wyjściowej GCUżyj go z powyższym parametrem PrintGC lub zapisz coś w stylu -XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStampsMożna go mieszać z -XX:+PrintGC -XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTimeCzas, w którym program zatrzymuje się podczas wywozu śmieci drukowanych. Można je mieszać z powyższymiFormat wyjściowy: Całkowity czas, przez jaki wątki aplikacji zostały zatrzymane: 0,0468229 sekund
-XX:+PrintGCApplicacjaConcurrentTimePrzed każdym zbieraniem śmieci wypisz nieprzerwany czas wykonania programuMożna je połączyć z powyższym, forma wyjściowa: Czas aplikacji: 0,5291524 sekundy
-XX:+PrintHeapAtGCWydrukuj szczegółowe informacje o stosie przed i po GC
-Xloggc:nazwa plikuZapisz odpowiednie informacje z logu do pliku do analizyWspółpraca z powyższymi kilkoma
-XX:+PrintClassHistogramPo naciśnięciu Ctrl+Break w konsoli wydrukuj informacje o klasie
-XX:+KlasaHistogramPrzedPełnoGCFullGC przed drukiem
-XX:+PrintTLABZobacz wykorzystanie przestrzeni TLAB
XX:+PrintTenuringDistributionZobacz próg nowego okresu przeżycia po każdym mniejszym GC
-EAWłącz assert assert
-XprofDiagnostyka wydajności
-XrunhprofDiagnostyka wydajności
-XX:+TraceClassLoadingWyświetla informacje o procesie ładowania zajęćPodobnie jak [Loaded java.util.AbstractList$Itr z /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingInformacje o procesie odinstalowania klasy drukowanej
XbootclasspathOkreśla ładowanie klas, które nie wymagają sprawdzaniaPominięcie niezbędnych kontroli wstępnego ładowania może skrócić czas ładowania, ale nie jest bezpieczne
-XX:+Kompilacja drukowanaWydrukuj nazwę metody, którą Hotspot kompiluje za pomocą JIT
-XX:+HeapDumpOnOutOfMemoryErrorOM podczas generowania zrzutu kopcaDomyślne wyjście znajduje się w folderze głównym, gdzie przechowywane są pliki klas
-XX:HeapDumpPathUstaw ścieżkę pliku OM OMUżycie z -XX:+HeapDumpOnOutOfMemoryError

Aneks

[Standardowy arkusz parametrów VM]

Nazwa parametruopisDomyślny
-d32Użyj modelu danych 32-bitowego (jeśli jest dostępny)
-d64Użyj modelu danych 64-bitowego (jeśli jest dostępny)
-serwerWybierz maszynę wirtualną serweraDomyślną maszyną wirtualną jest serwer, ponieważ działasz na maszynie podobnej do serwera.
-cp < katalogu oraz ścieżki wyszukiwania klas plików zip/jar >
-classpath < ścieżka wyszukiwania klas dla katalogów oraz plików zip/jar >Użyj : listy oddzielnych katalogów, archiwów JAR i archiwów ZIP do wyszukiwania plików klas
-D<名称>=<值>Właściwości systemu zbiorów
-Rozwlekły: [klasa lub GC lub JNI]Włącz szczegółowe wyniki
-WersjaWyjść wersję produktu i zakończyć
-<值>Wersja:Wycofane
-showversionWydrukuj wersję produktu i kontynuuj
-jre-restrict-search lub -no-jre-restrict-searchWycofane
-? -PomocWyślij tę wiadomość pomocy
-XPomoc w wyjściu przy niestandardowych opcjach
-ea[:< nazwa pakietu, nazwa klasy>]assert
-enableassertions[:< nazwa pakietu, nazwa klasy>]Włączaj asercje przy określonej granularności
-da[:< nazwa pakietu, nazwa klasy>]
-disable assertions[:< nazwa pakietu, nazwa klasy>]Wyłącz astacje o określonej szczegółowości
-esa lub -enablesystemassertionsWłącz asercje systemowe
-DSA lub -disablesystemassertionsWyłącz asercje systemowe
-agentlib:<libname>[=<选项>]Załaduj natywną bibliotekę <libname>agentówNa przykład -agentlib:hprofZobacz także -agentlib:jdwp=help oraz -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]Załaduj lokalną bibliotekę agentów według pełnej nazwy ścieżki
-javaagent:<jarpath>[=<选项>]Aby załadować agenta języka programowania Java, zobacz java.lang.instrument
-Plusk:<imagepath>Wyświetl ekran powitalny z podanym obrazem






Poprzedni:Nuget Series 1 wykorzystuje asp.net do budowy prywatnego repozytorium Nuget
Następny:Mysql CURRENT_TIMESTAMP i ON UPDATE CURRENT_TIMESTAMP rozróżnione
 Ziemianin| Opublikowano 2022-1-13 09:50:32 |


Uwaga: -Xms256m -Xmx1536m nie może być umieszczony po parametrze słoika!
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com