Стратегия по умолчанию для сжатия кучи больших объектов

Какова стратегия по умолчанию, используемая платформой.NET для сжатия кучи больших объектов?

  • никогда не уплотняется
  • через некоторое время уплотняется (не так агрессивно, как куча поколений)

Что держит? Если "через некоторое время", есть ли какие-то подробности о "как долго" или "когда"?

(Меня интересуют версии.NET Framework выше 4.5)

1 ответ

Решение

По умолчанию LOH вообще не сжимается. Потому что это может быть дорого.

Начиная с 4.5.1, вы можете использовать GCSettings, чтобы изменить это. Возможны варианты CompactOnce и Never.

Таким образом, вы можете вручную запустить сжатие, управляемое логикой вашего приложения.

LOH собирается (выметается) только во время сбора второго поколения. Это может вызвать вашу путаницу через некоторое время. Но сбор не является уплотнением.

Другие вопросы по тегам