为什么Old Gen会获得比它需要更多的内存?

时间:2017-03-04 05:37:50

标签: java memory-management garbage-collection jvm

我的申请中发生了以下情况:

正如人们所期望的那样,伊甸园空间可以快速提交,使用和释放内存。幸存者空间使用极少量的内存,其提交的内存直接匹配。 Old Gen使用的空间有点大(1-2演出),但非常稳定。这一切都很有意义 - 大多数对象来得非常快,并且有一些选择在整个应用程序生命周期中都会出现。

然而,Old Gen的空间提交就像疯了一样,往往是Old Gen和Survivor空间组合目前使用的数倍。此外,尽管存在这些尖峰,但使用的空间仍然坚如磐石 - 完全没有变化。

我的问题是双重的:

  1. 什么可能导致Old Gen的分配峰值从未实际填满?
  2. 一般来说,为什么Old Gen会分配比[Old Gen used] + [Survivor used]更多的空间?

0 个答案:

没有答案