![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тестирование на предмет утечек памяти
Утечка памяти — это тип ошибки, которая приводит к тому, что приложение посте пенно заполняет всю виртуальную память, управляемую операционной системой. Множество современных языков организуют в виртуальной памяти стек и кучу, обес печивая более эффективное и удобное управление временной областью памяти. Утечки памяти имеют несколько других названий, в числе которых паразитное рас пределение памяти, разрушение стека, разрушение памяти, квазипереполнение. Ос новная причина возникновения ошибки утечки памяти — невозможность освобожде ния виртуальной памяти, которая динамически запрашивается приложением. Не су ществует никаких внешних средств устранения утечки памяти, за исключением избе жания рабочей области приложения, вызывающей утечку памяти. Большинство со трудников служб технической поддержки просто рекомендуют прервать выполнение приложения или перезагрузить операционную систему. На рис. 10.5 показан пример сообщения группы технической поддержки компании Microsoft относительно утечки памяти в поступившей в продажу версии операционной системы Windows 95.
Компания Microsoft поместила средства обхода и исправления этих ошибок утеч ки памяти на соответствующие Web-сайты.
Как правило, утечка памяти происходит в небольшой функции, которая правиль но написана для своей удачной ветви, но неправильно — для неудачной ветви. Если вы деление виртуальной памяти выполняется во время запуска функции, но ввод данных пользователем приводит к прерыванию программы, обработчик ошибок для данного прерывания может быть не запрограммирован для освобождения виртуальной памя ти. Независимо от того, велик или мал объем выделяемой памяти, повторяющийся характер функции, в конечном счете, обусловит уменьшение объема доступной вир туальной памяти, и программа больше не сможет функционировать. Особенно уяз вимы в этом отношении приложения, которые выполняются круглосуточно в тече ние всех семи дней недели. Даже самые малые утечки памяти со временем приведут к разрушению программы или системы. Часть П. Технологии быстрого тестирования и советы
УТЕЧКА ПАМЯТИ В ЯДРЕ WINDOWS 95 ПРИ ИСПОЛЬЗОВАНИИ СОКЕТОВ WINDOWS
СИМПТОМЫ
При запуске программы, которая использует сокеты Windows, в среде Windows 95 со временем может происходить увеличение объема памяти, используемой операционной системой, особенно если программа открывает и закрывает множество каналов.
|