Разыскивается внутренняя часть LOH - PullRequest
1 голос
/ 20 апреля 2011

Я знаю, это деталь реализации, и некоторые люди думают, что интересоваться ими запрещено.Но я все же хочу найти ссылки и подтверждение следующего:

  1. Куча большого объекта поддерживает свободный список дырок в сегменте.Он использует это для полного выполнения запросов на выделение больших объектов.Не означает ли это также, что такое распределение потенциально может быть более дорогим, чем обычное (только увеличение указателя выделения) выделения из кучи небольших объектов? Ссылка

  2. В 32-разрядных процессах нижний предел размеров сегментов составляет 16 МБ.Что такое ограничение размера для 64-битных процессов?

Примечание: этот вопрос не задает правильных решений по проектированию (объединению) объектов.

1 Ответ

1 голос
/ 20 апреля 2011

Я только что узнал вторую часть вопроса с помощью 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  
...