java虚拟机的垃圾收集器之新生代收集器
2016-06-28 10:25
555 查看
hotspot虚拟机的收集器之新生代收集器
hotspot垃圾收集器主要有七种:如图所示:图中上面部分是新生代的垃圾收集器,下面部分表示老年代的垃圾收集器,两个垃圾收集器的之间的连线表示两个收集器搭配使用。
serial收集器
serial收集器是最基本发展最悠久的收集器。serial收集器是一个单线程的收集器,但他的“单线程”的意义并不仅仅只会使用一个cpu或者一条线程去完成垃圾收集工作,更重要的是在他进行垃圾收集时,必须暂停其他所有的工作线程,直到收集结束。serial/serial Old收集器运行示意图
serial的优点:简单有效(与其他收集器的单线程比),对于限定单个cpu的环境来说,serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程的收集效率。serial收集期对于运行在client模式下的虚拟机来说是一个很好的选择。
ParNew收集器
ParNew收集器其实就是serial收集器的多线程版,除了使用对线程进行垃圾回收收集之外,其余包括serial收集器可用的所有控制参数、收集算法、stop the world、对象分配规则、回收策略等都和serial收集器完全一样。ParNew/serial Old 收集器运行示意图
ParNew收集器的优缺点:ParNew收集器在单cpu的环境中绝对不会比serial好,甚至由于存在线程交互的开销,该收集器在通过超线程技术 实现的两个cpu的环境中都不能百分之百保证超过serial收集器。当然随着cpu的数量增加,他对于GC时系统资源的利用还是很有好处的。
Parallel Scavenge收集器
Parallel Scavenge收集器也是使用复制算法的收集器Parallel Scavenge的特点:Parallel Scavenge关注与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量,所谓的吞吐量就是CPU用于运行用户代码的时间与CPU总耗时间的比值,即吞吐量 = 运行用户代码时间/(运行用户代码时间+垃圾收集时间)。
相关文章推荐
- XP下使用虚拟机安装配置Solaris[多图]
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹
- Linux下三大免费桌面虚拟机评测
- 当存储无可用空间时无法启动虚拟机
- Windows 8虚拟机不能全屏的解决方法
- 使用VMware Workstation虚拟机保护数据
- 用 GNOME Boxes 下载一个操作系统镜像
- android 使用虚拟机安装apk(图文教程)
- Vmware虚拟机的安装及配置方法
- 深入解析java虚拟机
- Java虚拟机JVM性能优化(二):编译器
- 如何配置Apache服务器中的虚拟机
- apache虚拟机配置步骤和修改访问端口的方法(虚拟机端口映射)
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
- 用C语言来实现一个简单的虚拟机
- 解析wamp5下虚拟机配置文档
- Java虚拟机JVM性能优化(三):垃圾收集详解
- Java虚拟机最多支持多少个线程的探讨
- Java虚拟机JVM性能优化(一):JVM知识总结
- 虚拟机linux端mysql数据库无法远程访问的解决办法