当前位置: 首页 > 知识库问答 >
问题:

如何在JProfiler中解释GC活动图?

臧兴学
2023-03-14

最近我一直在努力优化一些代码(在计算时间和所需的最大内存方面)。为了知道优化内存成本是否有潜在收益,我使用JProfiler。通常

  • 如果它很高,我应该尝试在全球范围内降低它
  • 如果它是尖形的,我应该尽量减少中间对象的创建

现在,我处于第二种情况,气相色谱活动图显示峰值,但都小于2%(见下图)。我应该如何理解?

默认情况下,我的理解是GC活动曲线的和/积分是用于收集数据的cpu总百分比的估计。这意味着比最大值2%要小得多

真的吗?我错过了什么吗?

共有2个答案

秦天宇
2023-03-14

默认情况下,我的理解是GC活动曲线的和/积分是用于收集数据的cpu总百分比的估计。

应该是的。

这意味着比最大值2%要小得多

最大值在这里是欺骗性的。如果您使采样间隔足够小,最大值将是GCing上花费的时间片的100%。也就是说,当该切片小于GC暂停持续时间时。所以这些峰值已经是一些较大时间片上的平均值。

我该怎么理解呢?

您的应用程序可能不会在GC上花费太多时间。但您的图只覆盖相对较少的时间,因此它可能无法反映主要集合或并发周期。如果您关心延迟而不仅仅是吞吐量,那么解释JVM的GC日志将提供更多细节。

翁和正
2023-03-14

默认情况下,我的理解是GC活动曲线的和/积分是用于收集数据的cpu总百分比的估计。这意味着比最大值2%要小得多

这是正确的吗?

是的,没错。如果你想知道临时对象分配在哪里,去现场记忆-

要查看任何分配点或分配热点中的分类,请使用“Show classes”调用树分析。

 类似资料:
  • 我试图使用jprofiler分析我的spark应用程序(使用g1gc)。我在他们的网站上看到,他们提到jprofiler远程评测只能在标准垃圾收集器上可靠地工作: http://resources.ej-technologies.com/jprofiler/help/doc/index.html(在“探测设置/启动远程会话”部分下) “请注意,分析接口JVMTI仅与标准垃圾收集器一起可靠运行。如果

  • 当使用G1收集器时,我们一直在与似乎是长期停止的世界停顿作斗争。我已经通读了Oracle文档,但仍然难以确定如何解释导致长时间停顿的原因以及如何处理。(下面是GC日志) 我们的实例正在被监视,下面的图中包含了信息: 我们有另一个监视工具ping JVM,我让它报告JVM在同一时间内有12秒没有响应。 更新:元空间图

  • 我是Spring Security的新手。我该如何解释? 将调用权限评估器中的哪个方法?我认为在这种情况下将调用具有三个参数的方法。它正在检查当前用户是否对类型为“opetussuunnitelma”的目标拥有“LUONTI”权限。我说得对吗?我们不能不包含“null”并只传递两个参数吗?我读到第一个参数(身份验证对象)没有提供。

  • 我试图用JProfiler分析一个J2EE应用程序。 我无法在JProfiler的远程检测选项卡下检查CPU负载。下面是屏幕截图。有人能帮忙吗? 我甚至看了看这个和这个。 第一个链接非常具体地说明了在RSA中启用分析。但稍后会讨论如何为JVM启用分析。 有人能证实我对第二个的理解吗?

  • 当我阅读代码时,我有点困惑,我无法理解由创建的两个不同的之间的关系。 请指导我如何创建图表,并定义2个活动之间的关系类型。我所理解的是,它不是关联、聚合、组合或依赖,那么它是什么..请指导我。

  • 我的问题类似于这个问题MySQL在连接丢失/断开的情况下回滚事务,但那是5年前的事了。 如果一个客户端(比如jdbc或其他什么)锁定了表中的一行,执行一些语句,那么网络就关闭了,所以mysql永远不会从客户端收到或命令,mysql是否支持自动回滚这个事务(解锁行)? 我引用它说,但是有多长时间以及在哪里设置它? 在类似的问题中,公认的答案是使用,如果设置为10秒这样的小数字,那么池中的空闲连接(如