Обнаружение утечек памяти
Предварительные требования:
Утечка памяти - это ошибка в логике выделения памяти программе, приводящая к ошибкам в возврате в систему освободившейся памяти. То есть, объекты, которые больше не нужны, не освобождаются. Неоправданно большое количество таких объектов может привести к утечке памяти. Если утечка большая, то приложению может не хватить памяти для работы, и оно закроется.
Утечки памяти обычно вызываются объектами, хранящими ссылки на другие объекты, которые, в свою очередь, по этой причине не попадают под сбор мусора. Найти такие ссылки можно в таблице ссылок объекта.
Нахождение утечек памяти в приложении
Для выявления утечек памяти в приложении выполните следующие действия:
- В панели Монитор профилирования проекции Профилирование и протокол выберите агент либо монитор.
- Щелкните на выбранном объекте правой кнопкой мыши и выберите Собрать ссылки объекта. Ссылки будут собраны.
- Снова щелкните правой кнопкой и выберите Открыть с помощью > Ссылки объекта.
Откроется таблица ссылок объекта.
- Войдите в локальное меню
и выберите
Показать ссылки на объект.
- Проанализируйте список объектов и количество ссылок на каждый из них.
Те объекты, на которые есть ссылки, в потенциале могут стать причиной утечки памяти.
Нахождение утечек памяти при работе с транзакциями
Эта процедура позволяет найти участок программы, в котором объекты создаются, но не освобождаются, и вследствие этого не попадают под сбор мусора.
Например, программа создает окно. Потом окно закрывается, а объекты, относящиеся к нему, остаются в памяти.
Для выявления утечек памяти при работе с транзакциями выполните следующие действия:
- В панели Монитор профилирования проекции Профилирование и протокол выберите агент либо монитор.
- Соберите ссылки объекта.
Щелкните на нем правой кнопкой мыши и выберите Собрать ссылки объекта. Ссылки будут собраны.
- Щелкните правой кнопкой на мониторе и выберите Открыть с помощью > Ссылки объекта.
Проанализируйте таблицу ссылок и отметьте вновь созданные ссылки.
- Запустите приложение.
- Соберите ссылки объекта после выполнения приложения.
Для этого снова нужно щелкнуть на объекте правой кнопкой и выбрать Собрать ссылки объекта.
- Щелкните правой кнопкой на мониторе и выберите Открыть с помощью > Ссылки объекта.
Проанализируйте таблицу ссылок и отметьте вновь созданные ссылки.
- Для просмотра ссылок конкретного объекта выполните следующие действия:
- В выпадающем меню таблицы ссылок объекта выберите Показать ссылки объекта.
- Выберите класс объекта, разверните его.
- Найдите ссылки, препятствующие удалению свободных объектов.
Связанные концепции
Обзор инструмента профилирования
Ресурсы профилирования
Таблица ссылок объекта
Связанные задачи
Профилирование приложения
Запуски или подключение процесса Java
(C) Copyright IBM Corporation 2000, 2006.Все права
защищены.