首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在oracle java正式文档中,处理器的吞吐率意味着什么?

在oracle java正式文档中,处理器的吞吐率意味着什么?
EN

Stack Overflow用户
提问于 2018-09-15 01:28:16
回答 2查看 119关注 0票数 0

“Java,标准版HotSpot虚拟机垃圾收集调优指南”对图1-1作了如下解释

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

我不明白这个数字到底是什么意思。

这是否表示在固定gc时间的情况下,GC会因暂停而影响CPU的吞吐量?

EN

回答 2

Stack Overflow用户

发布于 2018-09-15 03:39:20

下面是文档中的说明文本,您在其中找到了这个图表:

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

图表下面的链接是:

该图形建模了一个理想的系统,除了垃圾收集(GC)之外,它是完全可伸缩的。它将处理器(x轴)的数量与吞吐量(y轴)相提并论.它包含6条标有1% GC、2% GC、3% GC、10% GC、20% GC和30% GC的标线。每一行表示应用程序在单处理器系统上用于垃圾收集的指定时间百分比相对于多处理器系统上的不断变化的吞吐量。图在它前面的文本中描述。

所以..。

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

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

票数 1
EN

Stack Overflow用户

发布于 2022-02-18 15:54:39

重要的是Amdahl定律,它指出“优化系统的单个部分所获得的总体性能改进受实际使用改进部分的时间的限制”。

你可以算出图表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52340875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档