【问题标题】:Standard allocation ratio for Java heapJava 堆的标准分配比例
【发布时间】:2013-03-03 01:38:21
【问题描述】:

我试图寻找这个问题的答案,但从未找到任何答案。

当我定义最大堆大小时,为 Java GC 空间分配大小的标准比例是多少?

也就是说:如果我用 4Gb 堆启动我的 JVM,那么分配给 Eden 的空间有多少?幸存者多少钱?多少终身?

另外,对于不同的 VM 供应商,该比率是否会发生变化?

提前致谢

【问题讨论】:

    标签: java garbage-collection size heap-memory


    【解决方案1】:

    这是特定于 JVM 的。在 Oracle 的 JVM 上,您可以使用 -XX:+PrintCommandLineFlags -XX:+PrintGCDetails 找出堆大小:

    $ java -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -version
    -XX:InitialHeapSize=78820288 -XX:MaxHeapSize=1261124608 -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseCompressedOops -XX:+UseParallelGC 
    java version "1.7.0_09"
    Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
    Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
    Heap
     PSYoungGen      total 22464K, used 770K [0x000000013e820000, 0x0000000140130000, 0x0000000157970000)
      eden space 19264K, 4% used [0x000000013e820000,0x000000013e8e0b08,0x000000013faf0000)
      from space 3200K, 0% used [0x000000013fe10000,0x000000013fe10000,0x0000000140130000)
      to   space 3200K, 0% used [0x000000013faf0000,0x000000013faf0000,0x000000013fe10000)
     ParOldGen       total 51328K, used 0K [0x000000010c570000, 0x000000010f790000, 0x000000013e820000)
      object space 51328K, 0% used [0x000000010c570000,0x000000010c570000,0x000000010f790000)
     PSPermGen       total 21248K, used 2165K [0x0000000107370000, 0x0000000108830000, 0x000000010c570000)
      object space 21248K, 10% used [0x0000000107370000,0x000000010758d6a8,0x0000000108830000)
    

    由此,您可以轻松计算出比率。

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 2023-03-04
      • 2012-01-23
      • 2018-06-13
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      相关资源
      最近更新 更多