Winforms / WPF Частные байты Утечка памяти?

Я использую Visual Studio 2008 для работы над проектом Winform / WPF.

Он использует несколько проектов и классов, чтобы превратить его в рабочий продукт.

Моя проблема в том, что мы заметили, что в использовании памяти наблюдается утечка 4-8 Кбит / с. Конечно, это небольшая утечка, но она безостановочно непрерывна 4-8k. Наше приложение работает в течение ночи и даже в течение нескольких дней. Когда эти несколько дней наступают сами по себе, эта вещь израсходовала больше памяти, чем может выдержать компьютер (обычно 2-3 гигабайта), и принудительный перезапуск на ПК - единственное решение. Эта утечка происходит даже тогда, когда ничего не происходит, кроме сетевого взаимодействия с нашим хостом.

После дальнейшего анализа проекта с помощью ANTS Memory Profiler мы обнаружили, что данные в частных байтах постоянно растут. Есть ли способ сказать, откуда эти личные данные создаются? У меня не было большой удачи, разыскивая это с ANTS Шаги очень помогли бы!

Изображение личных байтов увеличивается (~45 минут):

график приватных байтов на каждом снимке

Изображение Линии Времени (~45 минут):

график роста частного байта

Заранее спасибо!

1 ответ

Решение

Если частные байты продолжают увеличиваться, это означает, что у вас есть утечка памяти. Попробуйте DebugDiag, он от MS и бесплатный, также очень хороший инструмент для отслеживания утечки памяти в Windows.

Использовать этот инструмент просто: сначала вы создаете правило для мониторинга вашего процесса с помощью коллекции DebugDiag, оно создает дамп памяти в соответствии с вашим правилом, вы можете создать дамп памяти вручную. Затем вы можете использовать Анализ DebugDiag для анализа дампа, пожалуйста, установите правильный путь к символу перед анализом.

Эта статья MSDN " Определить и предотвратить утечки памяти в управляемом коде" тоже может помочь. В этой статье рассказывается, как определить, является ли утечка памяти нативной или управляемой. Если это чисто утечка управления.NET, вы также можете использовать CLR Profiler для устранения проблемы.

Другие вопросы по тегам