For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
Java垃圾回收机制的应用实践都是需要用到不同的垃圾收集器的,而本文我们就通过案例分析来简单了解一下,Java垃圾收集器的常见类型分享。
①Serial垃圾收集流程
Serial会开启一个线程进行垃圾收集,在收集的整个过程都会暂停用户线程(StoptheWord),直到垃圾收集完毕,如果把垃圾收集的过程当作打扫房间卫生,那么Serial的收集过程就是在你收集房间的时候,你先会让房间里的人都出去,然后你再安心打扫房间,直到你打扫完毕了才能让外面的人进来,这样就不用担心你一边打扫房间一边还有人在房间里扔垃圾了。
注意:说到“暂停用户线程”,这里也是各种垃圾收集器的一个区分指标,后面的有些垃圾收集器收集的某些阶段是不需要暂停用户线程的。
收集器特点
收集区域:Serial(新生代),SerialOld(老年代)。
使用算法:Serial(标记复制法),SerialOld(标记整理法)。
搜集方式:单线程收集。
优势:内存资源占用少、单核CPU环境佳选项。
劣势:整个搜集过程需要停顿用户线程。多核CPU、内存富足的环境,资源优势无法利用起来。
②ParallelScavenge工作流程
ParallelScavenge和ParallelOld的工作机制一样,这里以ParallelScavenge为例,ParallelOld在收集过程中会开启多个线程一起收集,整个过程都会暂停用户线程,直到整个垃圾收集过程结束。和之前的Serial垃圾收集器一对比,同样进行垃圾收集前都是先叫其他人都离开房间,但是不同的是serial只有一个人打扫房间,而这里却是有多个人一起打扫房间,所以从这一点看Parallel系列的收集器要比之前的效率高上很多。
收集器特点
收集区域:ParallelScavenge(新生代),ParallelOld(老年代)。
使用算法:ParallelScavenge(标记复制法),ParallelOld(标记整理法)。
搜集方式:多线程。
优势:多线程收集,CPU多核环境下效率要比serial高。
劣势:整个搜集过程需要停顿用户线程。
③ParNew收集器流程
ParNew收集流程和ParallelScavenge一样,同样是先停止应用程序线程,再进行多线程同时收集,整个收集过程都会暂停用户线程(StoptheWord),直到垃圾收集完毕。
ParNew的特点
收集区域:新生代。
使用算法:标记复制法。
搜集方式:多线程。
搭配收集器:CMS。
优势:多线程收集,CPU多核环境下效率要比serial高,新生代一个能与CMS配合的收集器。
劣势:整个搜集过程需要停顿用户线程。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。