JVM垃圾收集算法

引用计数法

无法处理循环引用的情况

标记清除法

空间碎片问题,垃圾回收后的空间不是连续的,不连续的内存空间的工作效率要低于连续的内存空间

复制算法

其核心思想就是将内存空间分为2块,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存留对象复制到未被使用的内存块中取,之后去清楚之前正在使用的内存快中所有的兑现个,反复去交换两个内存的角色,完成垃圾收集

标记压缩法

标记压缩法在标记清楚法基础之上做了优化,把存活的对象压缩到内存一端,而后进行垃圾清理。(java中老年代使用的就是压缩标记法)

分代算法

就是根据对象的特点把内存分为N块,而后根据每个内存的特点使用不同的算法,对于新生代和老年代来说,新生代回收频率很高,但是每次回收耗时都很短,而老年代回收频率较低,但是会相对较长,所以应该尽量减少老年代的GC

分区算法

其主要就是将整个内存分为N多个小的独立空间,每个小空间都可以独立使用,这样细粒度的控制一次回收都少个小空间和那些个小空间,而不是对整个空间进行GC,从而提升性能,减少GC的停顿时间

垃圾回收时的停顿现象

垃圾回收器的任务是识别和回收垃圾对象进行内存清理,为了让垃圾回收器可以高效的执行,大部分情况下,会要求系统进入一个停顿的状态,停顿的目的是终止所有应用线程。只有这样系统才不会有新的垃圾产生。同时停顿保证了系统状态在某一时刻的一致性。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容