Cześć
Bawie się trochę JVM i chciałbym osiągnąć taki rezultat (z g1 garbage collector):
Heap podzielony na Old i Young Generation po 512mb
Young generation podzielony na 3 części eden, 1 część S0 i 1 część S1 (czyli 307,2mb, i S0,S1 po 102,4mb)
Odpalam jvm z takimi parametrami (oczywiśćie bez gwiazdek):
-XX:+UseG1GC
* -Xms1024m -Xmx1024m -Xmn512m
** -XX:SurvivorRatio=3
*** -XX:NewSize=512m -XX:MaxNewSize=512m
i teraz ja to rozumiem tak:
* cały rozmiar heap = 1024 (chyba Xmn jest zbędne bo niżej definiuje NewSize i MaxNewSize)
** powinno dać podzielenie young generation na 3/5 czyli eden ma 3 części, S0 i S1 po 1 czesci
*** rozmiar young generation
I teraz wydaje mi się że powinienem osiągnąć cel, ale nie wynika to z VisualVM. I teraz nie wiem czy źle zapisuje flagi dla JVM czy nie potrafie czytać VisualVM.
Heap ma poprawny rozmiar (drugie zdjęcie), ale na pierwszym zdjęciu przykładowo Eden space jest zapisany Eden Space (1,000G, 528,000M) (czyli 528mb z 1gb?). Czemu w takim razie Old Gen jest zapisany (1,000G, 486,000M) kiedy powinien mieć 512. Już nie mówiąc o Survivor 0 i Survivor 1 zapisane odpowiednio (8,8) i (1,000G, 8)
Dzięki za pomoc