请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于full GC和Major GC

在用标记-清除算法的时候,会出现垃圾碎片,那当分配大对象导致没有那么大的连续内存空间的时候,就会触发Full GC , 这里的Full GC是如何处理这些不连续的内存空间以保证可以分配该大对象呢?
同时Major GC在视频中出现的很突兀,针对全堆进行垃圾收收集是Full GC ,那只针对老年代的垃圾收集又是叫什么呢?

正在回答 回答被采纳积分+3

插入代码

1回答

翔仔 2019-01-22 21:19:22

同学好,首先,如果是标记-清除算法,并不会进行碎片整理,所以课程里讲到,  如果你的应用程序对停顿比较敏感,并且在应用程序运行的时候可以提供更大的内存和更多的CPU(也就是硬件牛逼),那么使用CMS来收集会给你带来好处。如果碎片太多空间不足,就会一直显示正在处理垃圾,进入死循环值到OutOfMemory导致系统崩溃。

其次,我Major GC并不突兀,视频里说的"

当触发老年代的垃圾回收的时候通常也会伴随着对新生代堆内存的回收,即对整个堆进行垃圾回收,这便是所谓的FullGC。Major GC通常是跟full GC是等价的,即收集整个GC堆。但因为HotSpot VM发展了这么多年,外界对各种名词的解读已经完全混乱了,当有人说“major GC”的时候一定要问清楚他想要指的是上面的full GC还是仅仅针对老年代的 GC。"已经解释得比较清楚了:)

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号