PSYoungGen /PSOldGen/PSPermGen区别

转载 2013年12月03日 08:59:19

原文地址:http://bbs.csdn.net/topics/210064791


谁能解译一下PSYoungGen /PSOldGen/PSPermGen区别及出现的问题?


看来没有收集到答案,查看了很多书,终于是知道了.

在这里提供给大家学习学习,同时自己也巩固一下!

SUN JVM GC 使用是分代收集算法,即将内存分为几个区域,将不同生命周期的对象放在不同区域里.
新的对象会先生成在Young area,也就是PSYoungGen
在几次GC以后,如过没有收集到,就会逐渐升级到PSOldGen 及Tenured area(也就是PSPermGen)中。

三者区别:
在GC收集的时候,频繁收集生命周期短的区域(Young area),因为这个区域内的对象生命周期比较短,GC 效率也会比较高。而比较少的收集生命周期比较长的区域(Old area or Tenured area),以及基本不收集的永久区(Perm area)。


示例:

Event: 31.128 GC heap before
{Heap before GC invocations=11 (full 0):
 PSYoungGen      total 28928K, used 25856K [0x00000000ef560000, 0x00000000f18b0000, 0x0000000100000000)
  eden space 22336K, 100% used [0x00000000ef560000,0x00000000f0b30000,0x00000000f0b30000)
  from space 6592K, 53% used [0x00000000f1240000,0x00000000f15b0000,0x00000000f18b0000)
  to   space 6912K, 0% used [0x00000000f0b30000,0x00000000f0b30000,0x00000000f11f0000)
 ParOldGen       total 68288K, used 14219K [0x00000000ce000000, 0x00000000d22b0000, 0x00000000ef560000)
  object space 68288K, 20% used [0x00000000ce000000,0x00000000cede2f78,0x00000000d22b0000)
 PSPermGen       total 21248K, used 9290K [0x00000000c8e00000, 0x00000000ca2c0000, 0x00000000ce000000)
  object space 21248K, 43% used [0x00000000c8e00000,0x00000000c97129e0,0x00000000ca2c0000)
Event: 31.136 GC heap after
Heap after GC invocations=11 (full 0):
 PSYoungGen      total 24256K, used 2400K [0x00000000ef560000, 0x00000000f18d0000, 0x0000000100000000)
  eden space 21824K, 0% used [0x00000000ef560000,0x00000000ef560000,0x00000000f0ab0000)
  from space 2432K, 98% used [0x00000000f0b30000,0x00000000f0d88000,0x00000000f0d90000)
  to   space 7232K, 0% used [0x00000000f11c0000,0x00000000f11c0000,0x00000000f18d0000)
 ParOldGen       total 68288K, used 16467K [0x00000000ce000000, 0x00000000d22b0000, 0x00000000ef560000)
  object space 68288K, 24% used [0x00000000ce000000,0x00000000cf014f78,0x00000000d22b0000)
 PSPermGen       total 21248K, used 9290K [0x00000000c8e00000, 0x00000000ca2c0000, 0x00000000ce000000)
  object space 21248K, 43% used [0x00000000c8e00000,0x00000000c97129e0,0x00000000ca2c0000)
}

相关文章推荐

一步步优化JVM四:决定Java堆的大小以及内存占用

到目前为止,还没有做明确的优化工作。只是做了初始化选择工作,比如说:JVM部署模型、JVM运行环境、收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则。这一步将介绍如何评估应用需要的内存大小以及Java...

GC日志分析

通过 -XX:+PrintGCDetails 启用日志 GC (minor )日志 Full GC 日志
  • yxc135
  • yxc135
  • 2013年09月28日 17:12
  • 8024

一次让人难以忘怀的排查频繁Full GC过程

我们的Java应用因频繁FULL GC导致性能降低很多,经过多人的定位也没有结论,于是我自主请命,经过一天的研究终于搞定了,现把经验与大家共享,相关的gc日志如下: 4.758: [Full GC ...

7. GC 调优(实战篇) - GC参考手册

JVM上运行的程序多种多样, 启动参数也有上百个, 其中有很多会影响到 GC, 所以调优GC性能的方法也有很多种。 还是那句话, 没有真正的银弹, 能满足所有的性能调优指标。 我们能做的只是介绍一些...

Java GC 调试手记

摘要 本文记录GC调试的一次实验过程和结果。 GC知识要点回顾 问题1:为什么要调试GC参数? 在32核处理器的系统上,10%的GC时间导致75%的吞吐量损失。所以在大型系统上,调试GC是以小...

JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)

JVM区域总体分两类,heap区和非heap区。 heap区又分为: - Eden Space(伊甸园)、 - Survivor Space(幸存者区)、 - Old Gen(老年代)...

ParOldGen && PSOldGen

inline const char* PSOldGen::select_name() { return UseParallelOldGC ? "ParOldGen" : "PSOldGen"; }

JVM 常见参数设置和分析

打印 GC 日志这里以 IDEA 为例:菜单栏: Run -> Edit Configurations -> VM options 添加 -XX:+PrintGCDetail 写个简单的测试程...

记一次惨痛的java服务器full gc.......经过

[Full GC [PSYoungGen:

JVM GC调优一则--增大Eden Space提高性能

缘起 线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。 思路 思路是Tomcat本身的代码应该是没有问题的,有问题的可能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PSYoungGen /PSOldGen/PSPermGen区别
举报原因:
原因补充:

(最多只允许输入30个字)