C # Исключение нехватки памяти - стратегия предупреждения

Внутри сложного многопоточного приложения я получаю исключения нехватки памяти, возможно, раз в неделю. Приложение отправляет / читает огромные объемы данных через несколько сокетов, где считанные данные кэшируются, чтобы избежать переполнения буфера сетевой карты.
Какова лучшая стратегия анализа исключений памяти? Во время нормальной работы приложение отображается с размером «Всего байтов во всех кучах» до 1,5 гигабайт в проводнике процессов.
Может ли быть стратегия иметь поток, который опрашивает

GC.GetTotalMemory ()

или

PrivateMemorySize64 ()

раз в секунду, чтобы знать, когда начинать анализировать вещи? Я еще не изучал коммерческие профилировщики, и меня немного беспокоит их влияние на производительность, которое также может дать неверные результаты в отношении фактического анализа проблемы.

8
задан weismat 1 February 2012 в 08:48
поделиться