1

我知道,这是一个实现细节,有些人认为禁止对它们感兴趣。但我仍然想找到以下内容的参考和确认:

  1. 大对象堆维护一个段中空洞的空闲列表。它使用它来满足大对象的分配请求。这是否也意味着这样的分配可能比来自小对象堆的常规(仅分配指针增加)分配更昂贵?参考

  2. 在 32 位进程上,段大小的下限为 16MB。64 位进程的大小限制是多少?

备注:此问题不要求正确的对象设计(池)解决方案。

4

1 回答 1

1

我刚刚在 VMMap 的帮助下发现了问题的第二部分:

最小段大小

在 32 位上(在 MS 博客中也有报道):

Initial segment size for Gen 0,1,2:       16 MB   
Initial segment size for LOH:             16 MB  
Size for larger LOH chunks:multiples of    8 MB  

在 64 位上(仅通过尝试发现):

Initial segment size for Gen 0,1,2:      256 MB  
Initial segment size for LOH:            128 MB  
Size for larger LOH chunks: multiples of 128 MB  
于 2011-04-20T09:54:29.403 回答