Большие массивы и фрагментация LOH. Что такое принятая конвенция?

У меня есть другой активный вопросВОТ относительно некоторых безнадежных проблем с памятью, которые могут включать фрагментацию LOH среди, возможно, других неизвестных.

Каков мой вопрос сейчас, каков принятый способ делать вещи? Если мое приложение должно быть выполнено в Visual C #, и мне нужно иметь дело с большими массивами до уровня int [4000000], как я могуне быть обреченным на отказ сборщика мусора иметь дело с LOH?

Казалось бы, я вынужден делать любые большие массивы глобальными и никогда не использовать слово «новый» вокруг любого из них. Таким образом, у меня остались неблагодарные глобальные массивы с переменными «maxindex» вместо аккуратных по размеру массивов, которые передаются функциями.

Мне всегда говорили, что это плохая практика. Какая альтернатива есть?

Есть ли какая-то функция на мелодиюSystem.GC.CollectLOH("Seriously") ? Есть ли какой-нибудь способ передать сборщик мусора на что-то другое, кроме System.GC?

В любом случае, каковы общепринятые правила работы с большими (> 85 КБ) переменными?

Ответы на вопрос(5)

Ваш ответ на вопрос