JVM学习

1方法区  (线程共有)

2堆   (线程共有) 堆内存不足(-Xmx -Xms) Java heap space

3本地方法栈(运行本地方法 Native方法) unable to create native thread(线程数超过了操作系统的限制) 给虚拟机分配内存过大(-Xmx,-MaxPermSize)

4虚拟机栈(运行JAVA方法) 栈内存不够(-Xss)

5程序计数器

6持久代 (方法区 常量池 非堆的部分NoHeap) PermGen space 方法区(持久代)使用过大 应用加载class过大,字节码生成技术使用过多 (-XX:PermSize,-XX:MaxPermSize) 回收“性价比”低。废弃常量和无用的类。

分代回收    Eden  Survivor1 Survivor

年轻代  YongGC  

老年代 Major GC 也叫Full GC(老年代存储的对象比年轻代多得多,而且不乏大对象,对老年代进行内存清理时)

分代收集    年轻代:停止复制算法中  Eden区与Survivor的比例较大,HotSpot默认是 8:1:1

                   (代表Eden:Survivor1:Survivor2=8:1:1.)

                 老年代:标记-整理算法:标记出仍然存活的对象(存在引用的),将所有存活的对象向一端移动,以保证内存的连续。

在发生Minor GC时,虚拟机会检查每次晋升进入老年代的大小是否大于老年代的剩余空间大小,如果大于,则直接触发一次Full GC,否则,就查看是否 设置了-XX:+HandlePromotionFailure(允许担保失败),如果允许,则只会进行MinorGC,此时可以容忍内存分配失败;如果不允许,则仍然进行Full GC(这代表着如果设置-XX:+Handle PromotionFailure,则触发MinorGC就会同时触发Full GC,哪怕老年代还有很多内存,所以,最好不要这样做)。

JVM参数说明:http://www.cnblogs.com/wenfeng762/archive/2011/08/14/2137810.html

参考:

1 http://www.cnblogs.com/zhguang/p/3257367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值