Сборка мусора запускается слишком поздно - вызывает исключения OutOfMemory

Интересно, может кто-нибудь пролить свет на это.

У меня есть приложение, которое имеет большой объем памяти (и отток памяти). Нет утечек памяти, и GC, как правило, делают хорошую работу по освобождению ресурсов.

Однако иногда GC не происходит «вовремя», вызывая исключение нехватки памяти. Мне было интересно, если кто-нибудь может пролить свет на это?

Я использовал профилировщик REDGate, который очень хорош - приложение имеет типичный «пилообразный» паттерн - OOM происходят в верхней части пилообразного. К сожалению, профилировщик не может использоваться (AFAIK) для определения источников оттока памяти.

Можно ли установить для памяти «мягкий предел», при котором необходимо принудительно установить GC? В данный момент GC выполняется только тогда, когда память находится на своем абсолютном пределе, что приводит к OOM.

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

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