了解最大堆大小、堆大小和已用堆之间的关系

问题描述 投票:0回答:1

对于此应用程序,分配了-Xmx64m(从 VisualVM 的图表中可以看到同样的情况)。但是,尚不清楚这些区域在此应用程序的内存分配上下文中到底意味着什么。

我可以想象堆的最大分配意味着什么——超过该最大值堆就不会增长。我也能理解堆利用意味着什么——当前占用的区域(蓝色区域)。

但是橙色区域中的“堆大小”是多少?不是最大,几乎减半了,这意味着什么?

最后,如何在该应用程序的性能(或内存充足性)背景下解释该图(即这些值)?

(中间的峰值区域对应于应用程序的活动阶段,其余对应于空闲阶段。)

enter image description here

java heap visualvm
1个回答
0
投票

VisualVM 堆使用图中的橙色对应于年轻代。这是创建新对象的区域。如果对象在此区域中经历了多次垃圾回收,它们将被移动到老一代,对应于蓝色区域。

© www.soinside.com 2019 - 2024. All rights reserved.