Нужно ли явно устанавливать пространство для выживших в дополнение к NewRatio? - PullRequest
0 голосов
/ 26 марта 2019

Я профилирую Java-приложение, которое использует oracle jdk 8. Глядя на статистику gc, емкость пространства для выживших для S0 / S1 не соответствует соотношению выживших.Может кто-нибудь объяснить, что здесь происходит?Когда я меняю соотношение выживших, оно не меняет размер выжившего (емкость).Должен ли я явно установить параметр jvm, чтобы это работало?

Attaching to process ID 15084, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.201-b09

using thread-local object allocation.
Garbage-First (G1) GC with 63 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 137438953472 (131072.0MB)
   NewSize                  = 1363144 (1.2999954223632812MB)
   MaxNewSize               = 45801799680 (43680.0MB)
   OldSize                  = 5452592 (5.1999969482421875MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 33554432 (32.0MB)

Heap Usage:
G1 Heap:
   regions  = 4096
   capacity = 137438953472 (131072.0MB)
   used     = 29062893296 (27716.534896850586MB)
   free     = 108376060176 (103355.46510314941MB)
   21.146037976723164% used
G1 Young Generation:
Eden Space:
   regions  = 858
   capacity = 47815065600 (45600.0MB)
   used     = 28789702656 (27456.0MB)
   free     = 19025362944 (18144.0MB)
   60.21052631578947% used
Survivor Space:
   regions  = 9
   capacity = 301989888 (288.0MB)
   used     = 301989888 (288.0MB)
   free     = 0 (0.0MB)
   100.0% used
G1 Old Generation:
   regions  = 0
   capacity = 89321897984 (85184.0MB)
   used     = 0 (0.0MB)
   free     = 89321897984 (85184.0MB)
   0.0% used

36705 interned Strings occupying 3847064 bytes.
...