Мне любопытно, однако, какое преимущество в производительности может быть при пропуске больших объектов из сборки мусора Gen1?
Есть две вещи -
Во-первых, у крупных объектов (достаточно больших, чтобы быть на ЛОХ), как правило, более длительный срок службы. Короткоживущие крупные объекты встречаются редко, и в тех случаях, когда это необходимо, вы обычно можете использовать их повторно. Не сканируя, вы эффективно избегаете сканирований, которые почти всегда приводят к сохранению объектов в любом случае. Это, как правило, дает вам победу в перф.
Кроме того, для того, чтобы эффективно обрабатывать объекты в Gen1 и получать многие из преимуществ, обеспечиваемых наличием Gen1, они должны иметь возможность уплотнения. Большим преимуществом сборщика поколений является сжатие новейших выделений, что помогает поддерживать более низкую нагрузку на память, так как фрагментация ведет себя лучше. Большие объекты в Gen1 могут вызвать проблемы с производительностью или памятью, поскольку они либо потребуют сжатия (сейчас крупные объекты не сжимаются, поскольку их «перемещать» дорого), либо вызывают дополнительную фрагментацию.