图片来源B站,UID1126714340
堆分为年轻代和老年代,分别占三分之一和三分之二。
年轻代分为两个区尹甸园区与survivor区Ava
当尹甸园区有很多对象放不下时,Java会的字节码会开启一个垃圾收集线程(minor gc),来收集内存区域的垃圾对象。
-
垃圾收集用可达性分析算法。判断出垃圾和非垃圾,将非垃圾放到Survivor区经历一次minor gc,就会加一代,等到15代,还没有被回收,移动到老年代区域。
-
另外在前面survivor区移动的对象,比如从survivor-1移动survivor-2区,2区放不下,一部分对象直接被移动到老年代区。将尹甸园区的垃圾对象清空。放新对象。
-
当老年代内存满了以后,不是马上内存溢出,做一次full gc。如果老年代区域依然满了,出现内存溢出(OOM)
- 调优工具
jvisualvm
Arthas
今天的文章4、堆内存解析_堆内存和栈内存图解分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68439.html