В предыдущем вопросе я спросил возможные программные способы максимизировать самый большой блок, allocatable на LOH. Я все еще вижу проблемы, но теперь я пытаюсь получить голову вокруг, почему LOH, кажется, растет и уменьшается в размере, все же я все еще вижу OutOfMemoryExceptions, которые соответствуют тому, о чем другие сообщили как являющийся из-за фрагментации LOH.
Почему можно было бы звонить в, например, StringBuilder. EnsureCapacity бросают OutOfMemoryException для меня, но другой вызов от где-то в другом месте результата в LOH, расширяющемся в размере (согласно счетчикам производительности, это растет и уменьшается)?
я не уверен, но я бы попробовал 2 способа:
edit: 3-й способ может заключаться в создании дополнительных appdomains и обработке больших вещей в этих дополнительных appdomains.
Я просмотрел исходную статью и разместил там то, что, по моему мнению, может быть вашей проблемой. Пойдите, проверьте это.