.NET有像Java的permgen吗?

时间:2011-11-15 20:38:46

标签: c# .net memory-management permgen

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

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

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

(如果您不知道permgen是Significance of PermGen Space

2 个答案:

答案 0 :(得分:3)

CLR中没有这样的东西。只是一个普通的堆。垃圾收集器(GC)是世代的,有三代。一个用于年轻物体,一个用于长寿命,一个用于长寿命物体。还有一个lage对象堆(LOH)。为了提高效率,GC对LOH的处理有点不同。见Large Object Heap Uncovered

答案 1 :(得分:1)

不,CLR(C#只是“CLR语言”)没有永久代,请参阅Fundamentals of Garbage Collection

顺便说一下,JVM的未来版本 - 目前最初的Java 8版本 - 也不会有permgen(参见Oracle discusses Java 7 & 8 new features on video)(基本上是“合并”“经典”Sun HotSpot VM的结果有permgen和JRockit JVM)。