【发布时间】:2011-04-20 04:25:42
【问题描述】:
我知道,这是一个实现细节,有些人认为禁止对它们感兴趣。但我仍然想找到以下内容的参考和确认:
大对象堆维护一个段中空洞的空闲列表。它使用它来满足大对象的分配请求。这是否也意味着这样的分配可能比来自小对象堆的常规(仅分配指针增加)分配更昂贵? Reference
在 32 位进程上,段大小的下限为 16MB。 64 位进程的大小限制是多少?
备注:此问题不要求正确的对象设计(池)解决方案。
【问题讨论】:
-
我不记得我在哪里读到它了——这就是为什么这是评论而不是答案——是的,进行 LoH 分配可能比 Gen1 分配更昂贵。但是尝试压缩大对象(从 Gen1 升级到 Gen2)会非常昂贵。
-
您是否通过 C# 检查过 CLR?我认为里希特在那里谈过。
-
@Conrad:没有 Gen1 分配之类的东西。对象在 Gen0 或 LOH 中分配。
-
@Brian 我开始写 Gen0,然后担心有人会纠正我并称之为 Gen 1。我想我想多了。 :)
标签: .net clr large-object-heap