3

所以我有一个非常标准的 spring、hibernate、tomcat 环境......但我在本地和 CI 上获得了 permgens。

我知道有一个临时修复(即增加分配给 permgen 的内存),但这仍然只是暂时的。鉴于我所看到的,我宁愿不去想象生产环境是什么样子。

(有点比较问题)在 .NET 中我没有看到任何类似的东西。.NET 有它的 permgen 版本吗?

(如果您不知道 permgen 是PermGen Space 的意义

4

2 回答 2

3

CLR 中没有这样的东西。只是一个普通的堆。垃圾收集器 (GC) 是分代的,分为三代。一种用于年轻的物体,一种用于长寿的物体,一种用于非常长寿的物体。还有一个大对象堆(LOH)。GC 对 LOH 的处理方式略有不同,以提高效率。请参阅未覆盖的大对象堆

于 2011-11-15T21:16:58.793 回答
1

不,CLR(C#“只是”一种 CLR 语言)没有永久代,请参阅垃圾收集基础

顺便说一句,JVM 的未来版本——目前预计最迟用于 Java 8——也不会有 permgen(参见Oracle 在视频中讨论 Java 7 和 8 的新特性)(基本上是“合并”“经典”Sun 的结果具有 permgen 和 JRockit JVM 的 HotSpot VM)。

于 2011-11-15T21:09:53.387 回答