首页 网站优化 了解新旧版垃圾收集器

了解新旧版垃圾收集器

发布时间 2021-10-26 收藏 分享
价格 1.00
品牌 戴尔三星华为
区域 全国
来源 广东利联有限公司

详情描述:

新生代收集器Serial收集器

Serial(串行)收集器是较基本、发展历史较悠久的收集器,它是采用 复制算法的 新生代收集器,曾经(JDK 1.3.1之前)是虚拟机 新生代收集的一种选择。它是一个单线程收集器,只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是它在进行垃圾收集时,必须暂停其他所有的工作线程,直至Serial收集器收集结束为止(“Stop The World”)。这项工作是由虚拟机在后台自动发起和自动完成的,在用户不可见的情况下把用户正常工作的线程全部停掉,这对很多应用来说是难以接收的。

下图展示了Serial 收集器(老年代采用Serial Old收集器)的运行过程:

为了消除或减少工作线程因内存回收而导致的停顿,HotSpot虚拟机开发团队在JDK 1.3之后的Java发展历程中研发出了各种其他的质优收集器,这些将在稍后介绍。但是这些收集器的诞生并不意味着Serial收集器已经“老而无用”,实际上到现在为止,它依然是H otSpot虚拟机运行在Client模式下的默认的新生代收集器。它也有着优于其他收集器的地方: 简单而高效(与其他收集器的单线程相比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得更高的单线程收集效率。

在用户的桌面应用场景中,分配给虚拟机管理的内存一般不会很大,收集几十兆甚至一两百兆的新生代(仅仅是新生代使用的内存,桌面应用基本不会再大了),停顿时间完全可以控制在几十毫秒大致上一百毫秒以内,只要不频繁发生,这点停顿时间可以接收。所以,Serial收集器对于运行在Client模式下的虚拟机来说是一个很好的选择。

老年代收集器Serial Old收集器

Serial Old 是 Serial收集器的老年代版本,它同样是一个 单线程收集器,使用 “标记-整理”(Mark-Compact)算法。

此收集器的主要意义也是在于给Client模式下的虚拟机使用。如果在Server模式下,它还有两大用途:

它的工作流程与Serial收集器相同,这里再次给出Serial/Serial Old配合使用的工作流程图:



联系人 黄福利
0769-87855555 13827218110 1328913191
南城区高盛科技大厦1501
1328913191@qq.com
上一条 下一条
电话联系