注解:【Minor GC】和【Full GC】的区别
【Minor GC】(新生代GC):发生在【Eden Space】区域的垃圾回收,因为java中的对象存在的时间比较短,因此【Minor GC】是非常频繁的,而且速度也会很快。
【Full GC】(老年代GC)【Major GC】:前面三个名词属于一个意思,只是不同的叫法而已。指发生在【Old Space】区域的垃圾回收,【Full GC】的过程比较慢,大概是【Minor GC】的10倍以上,而且会伴随一次Stop-The-World。解释stop-the-World
在开始学习GC之前你应该知道一个词:stop-the-world。不管选择哪种GC算法,stop-the-world都是不可避免的。Stop-the-world意味着从应用中停下来并进入到GC执行过程中去。一旦Stop-the-world发生,除了GC所需的线程外,其他线程都将停止工作,中断了的线程直到GC任务结束才继续它们的任务。GC调优通常就是为了改善stop-the-world的时间。
这种算法会浪费一半的内存空间,我们称为A、B两块空间。当使用A空间的时候,B空闲,每当A空间使用完后,就将存活对象复制到B空间中,并将A中的空间清理掉。这样每次都是对一半的内存进行内存回收。小伙伴们想一下,一半的空间都在浪费,这是无法承受的。因此,就出现了【分代收集算法】。
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123