JVM四种垃圾回收机制
来源:互联网 发布:考勤管理系统源码 编辑:程序博客网 时间:2024/05/16 06:09
Sun JVM提供有4垃圾回收器:
Serial Collector(序列垃圾回收器):垃圾回收器对Young Gen和Tenured Gen都是使用单线的垃圾回收方式,对Young Gen,会使用拷贝策略避免内存碎片,对Old Gen,会使用压缩策略避免内存碎片。在JVM启动参数中使用-XX:+UseSerialGC启用Serial Collector。串行收集器只适用于小数据量的情况,默认情况下,JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。基本上在多内核的服务器上应该避免使用这种方式。JDK5.0以后,JVM会根据当前系统配置进行判断。串行GC适合小型应用和单处理器系统(无需多线程交互,效率比较高)。
Parallel Collector(并发垃圾回收器):垃圾回收器对Young Gen和Tenured Gen都是使用多线程并行垃圾回收的方式,对Young Gen,会使用拷贝策略避免内存碎片,对Old Gen,会使用压缩策略避免内存碎片。在JVM启动参数中使用-XX:+UseParallelGC启用Parallel Collector。这是一种吞吐量优先的并行收集器 ,主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。采用了多线程并行管理和回收垃圾对象,提高了回收效率和服务器的吞吐量,适合于多处理器的服务器。
Parallel Compacting Collector(并行压缩垃圾回收器):与Parallel Collector垃圾回收类似,但对Tenured Gen会使用一种更有效的垃圾回收策略,此垃圾回收器在暂停时间上会更短。在JVM启动参数中使用-XX:+UseParallelOldGC启用Parallel Compacting Collector。这是一种响应时间优先的并发收集器 ,主要是保证系统的响应时间,减少垃圾收集时的停顿时间。适用于应用服务器、电信领域等。
Concurrent Mark-Sweep (CMS) Collector(并发标志清除垃圾回收器):对Young Gen会使用与Parallel Collector同样的垃圾回收策略,对Tenured Gen垃圾回收的垃圾标志线程与应用线程同时进行,而垃圾清除则需要暂停应用线程,但暂停时间会大大缩减,需要注意的是,由于垃圾回收过程更加复杂,会降低总体的吞吐量。
这里说一下并行和并发的区别,并行指的是多个进程并行执行垃圾回收,那么可以很好的利用多处理器,而并发指的是应用程序不需要暂停可以和垃圾回收线程并发工作。
说明:对于联机处理的应用系统或复杂的3层应用系统,采用Concurrent Mark-Sweep (CMS) Collector进行垃圾搜集,基本上既能保证性能,又能保证稳定性(暂停时间短)。
- JVM四种垃圾回收机制
- JVM(四)——垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM&垃圾回收机制
- JVM垃圾回收机制
- jvm垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- Jvm垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- JVM垃圾回收机制
- Qt学习: 坐标系统详解
- 小结
- 我为什么要写blog
- 小码侬修仙之路
- java基础:代码块、继承
- JVM四种垃圾回收机制
- vue v-for 样式赋值
- 向上取整算法
- Flask学习(四):数据库迁移
- 解决xftp远程连接后出现中文乱码的问题
- PMP笔记-项目范围管理知识点汇总
- 优酷土豆实时推荐系统架构升级实践
- 【算法】【Dynamic Programming】Wiggle Subsequence
- js工具类