Java 幸存者大小是如何计算的

Java 幸存者大小是如何计算的,java,jvm,jvm-hotspot,Java,Jvm,Jvm Hotspot,下面是堆使用信息,来自jmap-heap,我使用的是Java1.8,我注意到幸存者空间的容量只有40MB,我想问一下如何计算这个40MB 垃圾优先(G1)GC,具有8个线程 G1在运行时动态调整区域大小。要跟踪其决策,您需要使用-XX:+PrintGCDetails-XX:+PrintAdaptiveSizePolicyG1在运行时动态调整区域大小来启用GC日志记录。要跟踪其决策,您需要使用-XX:+PrintGCDetails-XX:+PrintAdaptiveSizePolicy启用GC日志

下面是堆使用信息,来自
jmap-heap
,我使用的是Java1.8,我注意到幸存者空间的容量只有40MB,我想问一下如何计算这个40MB

垃圾优先(G1)GC,具有8个线程


G1在运行时动态调整区域大小。要跟踪其决策,您需要使用
-XX:+PrintGCDetails-XX:+PrintAdaptiveSizePolicy
G1在运行时动态调整区域大小来启用GC日志记录。要跟踪其决策,您需要使用
-XX:+PrintGCDetails-XX:+PrintAdaptiveSizePolicy
启用GC日志记录
Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 17179869184 (16384.0MB)
   NewSize                  = 1073741824 (1024.0MB)
   MaxNewSize               = 10301210624 (9824.0MB)
   OldSize                  = 5452592 (5.1999969482421875MB)
   NewRatio                 = 2
   SurvivorRatio            = 6
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 2147483648 (2048.0MB)
   G1HeapRegionSize         = 8388608 (8.0MB)

Heap Usage:
G1 Heap:
   regions  = 2048
   capacity = 17179869184 (16384.0MB)
   used     = 2224567944 (2121.513313293457MB)
   free     = 14955301240 (14262.486686706543MB)
   12.948689656332135% used
G1 Young Generation:
Eden Space:
   regions  = 74
   capacity = 5368709120 (5120.0MB)
   used     = 620756992 (592.0MB)
   free     = 4747952128 (4528.0MB)
   11.5625% used
Survivor Space:
   regions  = 5
   capacity = 41943040 (40.0MB)
   used     = 41943040 (40.0MB)
   free     = 0 (0.0MB)
   100.0% used
G1 Old Generation:
   regions  = 187
   capacity = 3179282432 (3032.0MB)
   used     = 1561867912 (1489.513313293457MB)
   free     = 1617414520 (1542.486686706543MB)
   49.126428538702406% used