代码之家  ›  专栏  ›  技术社区  ›  eric zhao

Java eden空间不比s0空间大8倍

  •  0
  • eric zhao  · 技术社区  · 7 年前

    根据oracle的doc,SurviorRatio的默认参数值为8,这意味着每个幸存者空间的大小将是eden空间的八分之一。 但在我的应用程序中,它不起作用

    $ jmap -heap 48865
    Attaching to process ID 48865, please wait...
    Debugger attached successfully.
    Server compiler detected.
    JVM version is 25.45-b02
    
    using thread-local object allocation.
    Parallel GC with 8 thread(s)
    
    Heap Configuration:
       MinHeapFreeRatio         = 0
       MaxHeapFreeRatio         = 100
       MaxHeapSize              = 4294967296 (4096.0MB)
       NewSize                  = 89128960 (85.0MB)
       MaxNewSize               = 1431306240 (1365.0MB)
       OldSize                  = 179306496 (171.0MB)
       NewRatio                 = 2
       SurvivorRatio            = 8
       MetaspaceSize            = 21807104 (20.796875MB)
       CompressedClassSpaceSize = 1073741824 (1024.0MB)
       MaxMetaspaceSize         = 17592186044415 MB
       G1HeapRegionSize         = 0 (0.0MB)
    
    Heap Usage:
    PS Young Generation
    Eden Space:
       capacity = 67108864 (64.0MB)
       used     = 64519920 (61.53099060058594MB)
       free     = 2588944 (2.4690093994140625MB)
       96.14217281341553% used
    From Space:
       capacity = 11010048 (10.5MB)
       used     = 0 (0.0MB)
       free     = 11010048 (10.5MB)
       0.0% used
    To Space:
       capacity = 11010048 (10.5MB)
       used     = 0 (0.0MB)
       free     = 11010048 (10.5MB)
       0.0% used
    PS Old Generation
       capacity = 179306496 (171.0MB)
       used     = 0 (0.0MB)
       free     = 179306496 (171.0MB)
       0.0% used
    
    7552 interned Strings occupying 605288 bytes.
    

    但在VisualVM中,伊甸园空间为1.332G,S0为455M,伊甸园仅比S0大3倍,而不是8倍

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  0
  •   apangin    7 年前

    你没有残疾 -XX:-UseAdaptiveSizePolicy ,也不确定 -Xms -Xmx

    MaxSurvivor = NewGen / MinSurvivorRatio
    

    哪里 -XX:MinSurvivorRatio=3

    另见 this answer .