译者注:由于原文和译文的格式差异,该惯例可能存在一些差异。1 简介
该图模拟了一个完美可扩展的理想系统,但垃圾收集 (GC) 除外。 它绘制了处理器数量(x 轴)与吞吐量(y 轴)的关系图。 它包含标记为 1% GC、2% GC、3% GC、10% GC、20% GC 和 30% GC 的六条标绘线。 每条线代表一个应用程序吞吐量的变化,该应用程序在单处理器系统和多处理器系统上花费了指定百分比的时间用于垃圾收集。 该图在其前面的文本中进行了描述。这表明在小型系统上开发时可以忽略不计的速度问题可能会成为扩展到大型系统时的主要瓶颈。 然而,在减少这种瓶颈方面的小改进可以产生很大的性能提升。 对于一个足够大的系统,选择正确的垃圾收集器并在必要时对其进行调整是值得的。
此图的 x 轴“分配的字节数”表示以分配的字节数衡量的对象生命周期。 y 轴“Bytes surviving”是具有相应生命周期的对象的总字节数。 该图左侧的三分之一标记为“次要收集”。 图表右侧的三分之二标记为“主要收藏”。 绘制线下方的区域为实心且颜色为蓝色。 该区域代表对象生命周期的典型分布。 该区域在左侧急剧上升并向右延伸。 该图在它周围的文本中有进一步描述。有些物体确实寿命更长,因此分布向右延伸。 例如,通常有一些在初始化时分配的对象会一直存在到进程退出。 在这两个极端之间的是在某些中间计算期间存在的对象,这里被视为初始峰值右侧的块。 一些应用程序看起来分布非常不同,但数量惊人的多都具有这种一般形状。 通过关注大多数对象“早逝”这一事实,可以实现高效收集。
注:图 3-2,“代的默认排列,并行收集器和 G1 除外” 显示默认的世代安排(对于除并行收集器和 G1 之外的所有收集器):
如果垃圾收集成为瓶颈,您很可能必须自定义总堆大小以及各个代的大小。 检查详细的垃圾收集器输出,然后探索您的个人性能指标对垃圾收集器参数的敏感性。
此图由一排六个矩形组成。 这些矩形标记如下(从左到右):在初始化时,最大地址空间实际上是保留的,但除非需要,否则不会分配给物理内存。 为对象内存保留的完整地址空间可以分为年轻代和老年代。
- Eden
- Survivor
- Spaces
- Virtual
- No label
- Virtual
矩形 1 到 4 标记为“年轻”。 矩形 5 到 6 标记为“Tenured”。
注:命令行选项 -XX:+PrintGCDetails 会导致打印有关收集的附加信息。 此处显示了使用串行垃圾收集器的 -XX:+PrintGCDetails 输出示例。
-verbose:gc 产生的输出格式在未来的版本中可能会发生变化。
注:
-XX:+PrintGCDetails 产生的输出格式在未来的版本中可能会发生变化。 选项 -XX:+PrintGCTimeStamps 在每个收集的开始添加时间戳。 这对于查看垃圾收集发生的频率很有用。
该图由一排六个矩形组成,标记如下(从左到右):总堆
- Eden
- Survivor
- Survivor
- Virtual
- Tenured
- Virtual
矩形组标记如下:
- 总大小:矩形1到6
- Committed vs. Virtual:Committed 由矩形 1 到 3 和 5 组成; virtual 由矩形 4 和 6 组成
- Tenured to Young ratio:Tenured由矩形1-4组成; 年轻的由矩形 5-6 组成
- Eden to Survivor 空间比例:Eden 为矩形 1; 幸存者空间为矩形 2
此图显示了并行收集器中代的排列。 该图由一排六个矩形组成。 这些矩形标记如下(从左到右):并行收集器工效学
- No label
- Virtual
- Virtual
- Eden
- Survivor
- Spaces
矩形 1 和 2 标记为“Tenured”。 矩形 3 到 6 标记为“年轻”。 矩形 7 和 8 标记为“Perm”。
该图由一个 10×10 的网格组成。 大多数网格的单元格都是灰色的。 十九个单元格为深蓝色。 这些深蓝色单元格随机分布在网格的上六行中。 其中两个深蓝色单元格包含一个红色框。 一个两格宽一格高的格子(出现在第一行)和一个三格宽一格高的格子(出现在第六行)被涂成深蓝色并标记为“H”。 八个单元格为浅蓝色并包含一个红色框。 其中两个细胞被标记为“S”。 这些带有红色框的浅蓝色单元格随机分布,大部分位于网格的上半部分。G1在逻辑意义上是分代的。 一组空区域被指定为逻辑年轻代。 图中,年轻一代为淡蓝色。 分配是从那个合乎逻辑的年轻一代完成的,当年轻一代已满时,该组区域将被垃圾收集(年轻收集)。 在某些情况下,年轻区域集之外的区域(深蓝色的旧区域)可以同时被垃圾收集。 这称为 混合收集 。 在图中,正在收集的区域用红色框标记。 该图说明了一个混合收集,因为正在收集年轻区域和旧区域。 垃圾收集是一种压缩收集,它将活动对象复制到选定的、最初为空的区域。 根据幸存对象的年龄,可以将对象复制到幸存区域(用“S”标记)或旧区域(未具体显示)。 以“H”标记的区域包含大于半个区域的巨大物体,并被特殊处理; 请参阅 9 垃圾优先(G1)垃圾收集器。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |