php网站开发教程下载,wordpress flash 插件,网站建设 深路互动,php网站开发培训班gc垃圾收集器 与gc算法当前版本的HotSpot JVM包括三种类型的垃圾收集器#xff1a; –串行收集器 –并行收集器 –多数同时收集者 它们都是世代的#xff0c;这意味着它们利用了堆的划分方式 。 垃圾收集器负责三个主要操作#xff1a; –查找不再使用的对象 –释放这… gc垃圾收集器 与gc算法 当前版本的HotSpot JVM包括三种类型的垃圾收集器 –串行收集器 –并行收集器 –多数同时收集者 它们都是世代的这意味着它们利用了堆的划分方式 。 垃圾收集器负责三个主要操作 –查找不再使用的对象 –释放这些对象之后的内存 –压缩堆 并非所有收集器都以相同的方式执行这些操作因此让我们了解有关所有收集器的基本信息。 我们将在单独的文章中介绍细节。 串行收集器 顾名思义收集仅由一个线程执行。 在次要和完全GC期间都必须停止世界STW。 该收集器对年轻一代使用标记复制算法而对旧一代使用标记清除紧凑算法进行清理。 串行GC专为单线程环境通常是客户端类计算机和较小的堆而设计。 可以通过-XX:UseSerialGC标志启用它。 并行吞吐量收集器 Young集合由多个线程并行化这使Minor GC更快。 结果该收集器导致较短但更频繁的Young收集STW暂停。 从JDK 7u4开始默认情况下还会由多个线程收集“旧世代”并且还会导致世界停顿。 在JDK 7u4之前需要-XX:UseParallelOldGC标志来启用旧一代的并行处理。 现在 -XX:UseParallelGC和-XX:UseParallelOldGC标志都启用了吞吐量收集器并同时处理了老一代和年轻一代。 该收集器还在Young Generation中使用mark-copy算法在Old Generation中使用mark-sweep-compact但是复制和压缩阶段均由多个线程执行。 要配置GC线程数可以使用-XX:ParallelGCThreadsX标志。 默认值设置为CPU内核数。 什么时候使用并行GC是个好选择 好吧基本上只要吞吐量比延迟更重要。 多数同时收集者 它们被称为低暂停收集器-旨在最大程度地减少停顿的暂停并保持应用程序尽可能的响应 并发标记和扫描CMS 使用并行标记复制算法在多个线程中执行次要GC。 然后将停止所有应用程序线程。 老式服务器通常是同时收集的-当后台GC线程扫描老式服务器时应用程序线程会暂停很短的时间。 Major GC期间使用的实际算法是并发标记扫描。 您可能已经注意到“扫描”之后没有“压缩”。 没错–并发标记和清除是不会压缩使用权空间的收集器因此内存可能会碎片化。 由于缺乏堆压缩当GC无法将新对象放入内存时JVM会回退到串行mark-sweep-compact算法以对旧版本进行碎片整理和压缩。 那就是性能下降到来的时候–所有应用程序线程都停止了只有一个线程负责清理和压缩Tenured空间。 如前所述CMS是低暂停收集器的一个示例。 这意味着当延迟是主要目标而不是吞吐量时这是一个不错的选择-因为吞吐量可能由于CPU消耗的增加而降低在应用程序线程运行时扫描堆不是免费的。 -XX:UseConcMarkSweepGC启用CMS收集器。 以前可以使用-XX:-UseParNewGC 单号“ UseParNewGC”之前减去-因此请使用此标记来禁用Parallel NewYoungGC来配置具有单线程Young Generation集合的CMS但已弃用在Java 8中已删除在Java 9中已删除。 G1GC 垃圾优先G1是一种新的低中断垃圾收集器旨在处理具有最小暂停的大型堆。 堆分为固定大小的几个区域同时仍保持堆的世代性质。 这种设计使我们在处理整个“年轻一代”或“老一代”时摆脱了较长的STW暂停。 现在可以分别收集每个区域这将导致更短但更频繁的STW暂停。 G1将对象从一个区域复制到另一个区域这意味着堆至少已部分压缩。 G1使用mark-sweep-compact算法的增量版本。 可以通过指定-XX:UseG1GC标志来启用它。 摘要 这是本文讨论的收集器的简单比较 集电极 多个GC线程 STW年轻一代 STW老一代 堆压实 首要目标 序列号 没有 是 是 是 – 平行 是 是 是 是 通量 不育系 是 是 仅在扫描期间 没有 潜伏 G1 是 是 很短的 部分地 潜伏 还有一些其他垃圾收集器但它们不是HotSpot JVM的一部分。 这些是 C4Azul Zing JVM 雪兰多 平衡IBM J9 JVM 在Java 8中服务器级计算机的默认GC是Parallel Collector。 G1GC在Java 9中将是默认的。默认情况下客户端类计算机运行Serial Collector。 翻译自: https://www.javacodegeeks.com/2017/09/gc-explained-collectors-overview.htmlgc垃圾收集器 与gc算法