hs_err_pid 文件中指定的堆的不同部分是什么?

Gee*_*eek 4 java gcc jvm

下面是其中的一部分hs_err_pid

Heap
 PSYoungGen      total 13888K, used 9807K [0x8a330000, 0x8b140000, 0x914f0000)
  eden space 13504K, 69% used [0x8a330000,0x8ac67710,0x8b060000)
  from space 384K, 96% used [0x8b0e0000,0x8b13c6e0,0x8b140000)
  to   space 448K, 0% used [0x8b060000,0x8b060000,0x8b0d0000)
 PSOldGen        total 115456K, used 57684K [0x514f0000, 0x585b0000, 0x8a330000)
  object space 115456K, 49% used [0x514f0000,0x54d451c0,0x585b0000)
 PSPermGen       total 16384K, used 11253K [0x4d4f0000, 0x4e4f0000, 0x514f0000)
  object space 16384K, 68% used [0x4d4f0000,0x4dfed618,0x4e4f0000)
Run Code Online (Sandbox Code Playgroud)

什么是

  1. PS年轻一代
  2. 伊甸园空间(从太空到太空)
  3. 旧一代
  4. PSPermGen(对象空间)

mus*_*ibs 5

堆内存被组织成不同的

代的默认安排(并行收集器和 G1 除外)

1.年轻代:大多数新对象最初都是在年轻代中创建的。这一代分为两个区域,分别是Eden空间Survivor空间。Survivor空间进一步分为两个区域Survivor0Survivor1。所有新对象最初都是在伊甸园空间中创建的,幸存者空间主要在进行少量垃圾收集时使用。

在每次次要收集之前,一个 Survivor 空间将为空 ( to),这将用于将活动对象保留在次要收集的 eden空间或幸存者空间中。from

年轻一代未成年人合集1

对于下一个次要集合,反之亦然,即前者from将是to并且to将是form

年轻一代未成年人合集2

2. Tenured或Old Generationlives :在Young Generation中一段时间​​的对象(即在一些次要收集中幸存下来)被移动到Old Generation。

3.永久代:该区域主要包含类和方法元数据。在这里阅读更多内容


    Heap
 PSYoungGen      total 13888K, used 9807K [0x8a330000, 0x8b140000, 0x914f0000)
  eden space 13504K, 69% used [0x8a330000,0x8ac67710,0x8b060000)
  from space 384K, 96% used [0x8b0e0000,0x8b13c6e0,0x8b140000)
  to   space 448K, 0% used [0x8b060000,0x8b060000,0x8b0d0000)
 PSOldGen        total 115456K, used 57684K [0x514f0000, 0x585b0000, 0x8a330000)
  object space 115456K, 49% used [0x514f0000,0x54d451c0,0x585b0000)
 PSPermGen       total 16384K, used 11253K [0x4d4f0000, 0x4e4f0000, 0x514f0000)
  object space 16384K, 68% used [0x4d4f0000,0x4dfed618,0x4e4f0000)
Run Code Online (Sandbox Code Playgroud)

上面展示了Heap中不同代的内存使用情况总结。

阅读 Sun 白皮书以获得清晰的理解。