Обнаружение и изоляция утечек памяти
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
Только машинные коды |
|||
Standard |
Только машинные коды |
|||
Pro и Team |
Только машинные коды |
Обозначения:
Применяется |
|
Неприменимо |
|
Команда или команды скрытые по умолчанию. |
Возможность динамически выделять и освобождать память — одна из важнейших функций программирования C/C++, которая в то же время может обернуться не меньшими проблемами. Это безусловно верно для приложений C/C++, где проблемы обработки памяти являются одним из самых распространенных типов ошибок.
Одна из наиболее трудно обнаруживаемых ошибок — утечка памяти. Это сбой при освобождении предварительно занятой памяти. Небольшая утечка памяти, произошедшая однажды, может остаться незамеченной, но программы с утечкой большого количества памяти (или с растущей утечкой) могут показывать симптомы от низкой (и продолжающей снижаться) производительности до нехватки памяти. В худшем случае программы с утечкой памяти могут использовать так много памяти, что сбои начинают возникать в других программах, а пользователь не может понять, в чем действительно состоит проблема. Кроме того, даже безвредная на первый взгляд утечка памяти может быть признаком другой проблемы.
Отладчик Visual Studio и библиотеки времени выполнения C (CRT) предоставляют эффективные средства для обнаружения утечек памяти. Чтобы понять, как с помощью отладочных возможностей CRT обнаружить утечку памяти, прочтите следующие разделы:
MFC предоставляет свой набор функций для обнаружения утечек памяти в программах MFC. Дополнительные сведения содержатся в разделе Обнаружение утечек памяти в MFC.