【发布时间】:2017-09-28 11:14:33
【问题描述】:
最近我一直致力于优化一些代码(计算时间和所需的最大内存)。要了解优化内存成本是否有潜在收益,我使用 JProfiler。 通常
- 如果它很高,我应该尝试在全球范围内减少它
- 如果它很尖,我应该尽量减少中间对象的创建
现在,我处于第二种情况,GC 活动图显示峰值,但均小于 2%(见下图)。我该如何理解?
默认情况下,我的理解是 GC Activity 曲线的总和/积分是对用于收集数据的 cpu 总百分比的估计。所以在这里,这意味着远低于最大 2%
对吗?我错过了什么吗?
【问题讨论】:
-
您可以添加图片吗?此外,如果您想要更详细的 GC 解释 GC 活动,您应该启用 gc 日志记录并通过 gcviewer 运行。
-
我添加了一张图片。我不知道 gc 日志记录功能,它有什么作用?
-
gc 日志提供了关于整体 GC 性能的更详细的统计信息。 jprofiler 更适合分析对象图和分配站点。因此,如果您想更好地了解聚合行为,那么解释 gc 日志将提供更多洞察力。如果你想知道什么被分配到哪里,那么探查器是更好的选择。
标签: garbage-collection jprofiler