【问题标题】:Missing memory: size of young generation includes only one survivor space内存缺失:年轻代的大小只包含一个幸存者空间
【发布时间】:2015-04-05 11:55:29
【问题描述】:

在 Java 堆上,我预计年轻一代的大小将是eden空间两个幸存者空间从空间到空间):

[young gen size] = [eden space size] + [from space size] + [to space size]

但是,GC 日志(使用XX:+PrintHeapAtGC)表明young generation 的大小是eden 空间的大小之和幸存者空间之一

[young gen size] = [eden space size] + [from space size]

为什么年轻代的大小只包括一个幸存者空间的大小?

可能是因为只有一个幸存者空间可用?但是两个幸存者空间都存在,所以两个幸存者空间都应该为新一代的规模做出贡献

GC 日志:

{Heap before GC invocations=48 (full 17):
par new generation   total 943744K, used 891496K [0x000000073ae00000, 0x000000077ae00000, 0x000000077ae00000)
  eden space 838912K, 100% used [0x000000073ae00000, 0x000000076e140000, 0x000000076e140000)
  from space 104832K,  50% used [0x000000076e140000, 0x000000077149a040, 0x00000007747a0000)
  to   space 104832K,   0% used [0x00000007747a0000, 0x00000007747a0000, 0x000000077ae00000)

来自:

[young gen size] = [eden space size] + [from space size]
     943744K     =      838912K      +      104832K

【问题讨论】:

    标签: java memory garbage-collection jvm heap-memory


    【解决方案1】:

    在任何时候,幸存者空间之一始终是空的,因此不能被视为可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 2013-01-04
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多