Ну, то, что куча больших объектов (LOH) не уплотнена, не означает, что она не собрана . LOH собирается , и закрепление объекта там будет иметь разветвление для будущих распределений.
Поскольку объект закреплен, он эффективно сокращает объем доступной памятив LOH (так же, как если бы вы держали ссылку).Когда делается другой запрос на выделение большого объекта, если в LOH слишком много закрепленных / удержанных ссылок, вы можете столкнуться с проблемами, выделяющими более крупные объекты.
Когда отметка выполняется во время пометки и-снижая часть сборки мусора, CLR, вероятно, помечает все ссылки, которые закреплены как корни, поэтому, вероятно, не будет никакого воздействия во время этой части сборки;он будет вести себя так же, если кто-то сохранит ссылку на большой объект.
Поскольку освобождение происходит в LOH таким же образом (блок просто помечается как доступный), эта операция также не затрагивается.
И, наконец, поскольку LOH не уплотняется, эта операция никогда не выполняется в этой куче во время GC, поэтому здесь это не затрагивается.
В целом, распределение в LOH может определенно будет подвержен влиянию закрепления ссылок на объекты в LOH, в то время как коллекции в LOH, скорее всего, нет.
Хотя давайте не будем забывать, что выделение и хранение больших блоков памяти может иметь последствия длясистемы в целом, эти комментарии строго о LOH .