栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么PermGen的默认大小这么小?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么PermGen的默认大小这么小?

从程序员的概念上讲,您可以辩称“永久一代”是毫无意义的。如果您需要加载一个类或其他“永久”数据,并且还有剩余的存储空间,那么原则上您也可以将其加载到某个地方,而不用担心将这些项的集合称为“世代”。

但是,其基本原理可能是:

  • 使所有代码/类元数据在内存空间中靠近在一起有潜在的好处(例如,从处理器缓存的角度来看),并且为了保证这一点,分配固定大小的区域更加容易;
  • 同样,存储代码/类元数据的内存空间可能具有某些“特殊”属性(特别是,如果可以帮助,您不希望将其分页到磁盘),并且系统可能无法设置此类属性以非常精细的方式存储在内存中,因此将所有“特殊”对象放在一个(或少量)连续的块或内存空间中更为实用;
  • 将所有永久性对象放在一起有助于避免碎片化剩余的存储空间,而且,最实用的方法是从一开始就分配一个固定大小的连续内存块。

因此,正如我所看到的,大多数时候分配永久“代”的原因实际上是出于实际实现的原因,而不是因为程序员确实非常在意。

另一方面,这种情况通常也不会对程序员造成可怕的影响:所需的永久生成量通常是可以预测的,因此您应该能够以适当的回旋余地分配所需的数量。因此,如果您发现自己出乎意料地超出了分配量,则很可能表明“某些严重问题是错误的”。

注意可能是这样的情况,PermGen最初旨在解决的一些问题在具有更大处理器缓存的现代64位处理器上并不是那么大的问题。如果在将来的Java版本中将其删除,则这很可能表明JVM设计人员认为它已经“达到了目的”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号