Juh*_*uh_ 5 garbage-collection jprofiler
最近我一直在努力优化一些代码(需要计算时间和最大内存).要知道是否存在优化内存成本的潜在收益,我使用JProfiler.通常
现在,我处于第二种情况,GC活动图显示了峰值,但都低于2%(见下图).我该怎么理解?
默认情况下,我的理解是GC活动曲线的总和/积分是用于收集数据的CPU总百分比的估计值.所以在这里意味着远远低于最大2%
这是正确的吗?我错过了什么吗?
默认情况下,我的理解是,GC 活动曲线的总和/积分是对用于收集数据的 cpu 总百分比的估计。所以这意味着远低于最大 2%
那是对的吗?
对,那是正确的。如果你想找出临时对象的分配位置,请进入Live Memory->Allocation Call Tree并选择“Garbagecollectedobjects”作为liveness模式
要查看任何分配点或分配热点中的类,请使用“显示类”调用树分析。
默认情况下,我的理解是,GC 活动曲线的总和/积分是对用于收集数据的 cpu 总百分比的估计。
应该是的,是的。
所以这意味着远低于最大 2%
max在这里是骗人的。如果您将采样间隔设置得足够小,则最大值将为 GC 所用时间片的 100%。即该切片小于 GC 暂停持续时间时。因此,这些峰值已经是一些较大时间片的平均值。
我该如何理解呢?
您的应用程序可能不会在 GC 上花费太多时间。但您的图表仅涵盖相对较小的时间,因此它可能无法反映主要集合或并发周期。如果您关心延迟而不仅仅是吞吐量,那么解释 JVM 的 GC 日志将提供更多详细信息。