oracle java官方文档中的吞吐量是多少

oracle java官方文档中的吞吐量是多少,java,garbage-collection,Java,Garbage Collection,“Java平台,标准版热点虚拟机垃圾收集调优指南”,解释如下 红线表示应用程序在单处理器系统上只花费1%的时间进行垃圾收集。这意味着使用32个处理器的系统的吞吐量损失超过20% 我不明白这些数字的真正含义。 这是否意味着,在gc时间固定的情况下,gc会因为暂停而影响CPU的吞吐量?以下是您发现此图的文档中的解释文本: 图1-1中的图模拟了一个理想的系统,除了垃圾收集之外,它是完全可伸缩的。红线表示应用程序在单处理器系统上只花费1%的时间进行垃圾收集。这意味着使用32个处理器的系统的吞吐量损失超

“Java平台,标准版热点虚拟机垃圾收集调优指南”,解释如下

红线表示应用程序在单处理器系统上只花费1%的时间进行垃圾收集。这意味着使用32个处理器的系统的吞吐量损失超过20%

我不明白这些数字的真正含义。

这是否意味着,在gc时间固定的情况下,gc会因为暂停而影响CPU的吞吐量?

以下是您发现此图的文档中的解释文本:

图1-1中的图模拟了一个理想的系统,除了垃圾收集之外,它是完全可伸缩的。红线表示应用程序在单处理器系统上只花费1%的时间进行垃圾收集。这意味着使用32个处理器的系统的吞吐量损失超过20%。洋红线显示,对于一个应用程序,垃圾收集的时间占10%(在单处理器应用程序中,垃圾收集的时间不算太长),当扩展到32个处理器时,会损失75%以上的吞吐量

图表下方的链接显示:

该图模拟了一个理想的系统,除了垃圾收集(GC)之外,该系统是完全可伸缩的。它根据吞吐量(y轴)绘制处理器数量(x轴)。它包含六条标为1%GC、2%GC、3%GC、10%GC、20%GC和30%GC的绘制线。每一行表示应用程序的吞吐量变化,该应用程序在单处理器系统上与在多处理器系统上花费指定百分比的时间进行垃圾收集。图表在前面的文字中有描述


所以

  • 这是一个模型,而不是实际测量性能的图表
  • 该模型是理想化的。它假设应用程序是完全可伸缩的(除了GC)
  • 它说明了当您不使垃圾收集可伸缩时会发生什么;e、 g.如果只有一个GC线程,并且它不与应用程序线程并行运行
  • 1%GC、2%GC等行表示单处理器系统上不同的建模GC负载。因此,1%行表示在单处理器系统上运行的应用程序的情况,其中应用程序线程生成一个GC负载,可以使用1%的可用CPU收集该负载
  • 吞吐量表示繁忙应用程序正在完成的有用(应用程序)工作;i、 e.垃圾收集或等待GC完成所占用的时间(GC开销)
  • 吞吐量是以给定处理器数量的系统上可用CPU时间的百分比来度量的

  • 因此,例如,在30%的GC级别上,32核系统的吞吐量大约是硬件理论吞吐量的1/10。等待垃圾收集完成将浪费大约9/10的可用CPU时间

    您是否有相关文档部分的链接?这是否意味着,在固定gc时间的情况下,gc会因为暂停而影响CPU的吞吐量?对随着处理器数量的增加,1%的GC时间相当于32个CPU上30%的时钟时间。而30%的GC会导致几乎100%的时间花费在GC上。基本上,这是对阿姆达尔定律的重新表述。基本上,我这样问是因为你的问题中没有足够的信息来确定答案。我想这句话是指旧的停止世界标记和扫描GC,但我不能肯定。@markspace谢谢你的帮助。我在@Elliott Frisch看到了,谢谢你的评论。但我还是不明白,处理器越少,吞吐量就越好吗?我是这样想的,因为当我们只看到红线时,它表明当处理器小于5时的吞吐量比处理器数为32时的吞吐量更好。