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

pyantking 2008-03-29 08:57:25
Heap
PSYoungGen total 44928K, used 916K [0x4e3c0000, 0x50fe0000, 0x51b10000)
eden space 44736K, 2% used [0x4e3c0000,0x4e4a5318,0x50f70000)
from space 192K, 0% used [0x50f70000,0x50f70000,0x50fa0000)
to space 192K, 0% used [0x50fb0000,0x50fb0000,0x50fe0000)
PSOldGen total 453312K, used 125529K [0x32910000, 0x4e3c0000, 0x4e3c0000)
object space 453312K, 27% used [0x32910000,0x3a3a6498,0x4e3c0000)
PSPermGen total 65536K, used 65535K [0x2e910000, 0x32910000, 0x32910000)
object space 65536K, 99% used [0x2e910000,0x3290fff8,0x32910000)
...全文
3588 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pyantking 2008-03-31
  • 打赏
  • 举报
回复
看来没有收集到答案,查看了很多书,终于是知道了.
在这里提供给大家学习学习,同时自己也巩固一下!

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

三者区别:
在GC收集的时候,频繁收集生命周期短的区域(Young area),因为这个区域内的对象生命周期比较短,GC 效率也会比较高。而比较少的收集生命周期比较长的区域(Old area or Tenured area),以及基本不收集的永久区(Perm area)。
DiligencyMan 2008-03-30
  • 打赏
  • 举报
回复
????
不懂,给你顶上去!
老紫竹 2008-03-30
  • 打赏
  • 举报
回复
也学这个文章能帮助你 http://www.wujianrong.com/archives/2007/09/jconsole.html

其中一段解释如下

Eden Space (heap): 内存最初从这个线程池分配给大部分对象。
Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。
Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。
Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的,
Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)

详细信息区域给出一些当前线程的信息:
Used :已使用:当前的内存使用量。使用的内存包括所有对象(能被获取和不能被获取的)所占用的内存。

Committed :分配量:Java虚拟机保证能够获取到的内存量。分配内存(committedmemory)的量可能随时间改变。Java虚拟机可能释放部分这里的内存给系统,相应的分配的内存这时可能少于初始化时分配的给它的量。分配量总数大于或等于已使用的内存量。

Max :内存管理系统可以使用的最大内存量。这个值可以被改变或者不做设定。如果JVM试图增加使用的内存到大于分配量(committedmemory)的情况,内存分配可能失败,即便想使用的内存量小于或者等于最大值(如:系统虚拟内存比较低时)

Usage Threshold The usage threshold of a memory pool. This field will only beshown if the memory pool supports usage threshold.
GC time :垃圾回收使用的总时间和调用垃圾回收的次数。它可能有好几行,每行代表JVM使用的垃圾回收算法

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧