Лучшие методы в .NET: выявление утечек памяти приложения
ОГЛАВЛЕНИЕ
Загрузить исходный код - WindowsAppMemoryLeak - 34.04 KB
Введение
Утечки памяти в приложении .NET всегда были кошмаром программистов. Утечки памяти – самые большие проблемы, когда дело касается рабочих серверов. Рабочие сервера, как правило, должны работать с минимальным временем простоя. Утечки памяти потихоньку возрастают и спустя некоторое время останавливают сервер, потребляя огромные куски памяти. Максимальный период времени люди перезагружают систему, заставляют ее работать временно и отправляют клиентам сообщение с извинениями за простой.
Не используйте диспетчер задач для выявления утечек памяти
Первая и наиболее важная задача – подтвердить наличие утечки памяти. Многие разработчики используют диспетчер задач windows для подтверждения наличия утечки памяти в приложении. Использование диспетчера задач не только вводит в заблуждение, но и не дает достаточной информации о том, где находится утечка памяти.
Сначала попытаемся понять, почему информация диспетчера задач о памяти вводит в заблуждение. Диспетчер задач показывает рабочий набор памяти, а не фактическую используемую память. Но что это означает? Эта память - выделенная память, а не используемая память. Добавление некоторого количества дополнительной памяти из рабочего набора может совместно использоваться другими процессами / приложением.
Рабочий набор памяти может быть больше по количеству, чем фактическая используемая память.