Содержание
- 2. Обнаружение узких мест и анализ утечек памяти Обнаружение узких мест и анализ утечек памяти Дмитриев Андрей
- 3. Качество программы Качество можно оценивать по следующим критериям: Результативность – решает ли программа поставленную задачу? Быстродействие
- 4. Программа Определения. Возможности профилировщика. Запуск. Мониторинг приложения. Анализ производительности. Анализ использования памяти.
- 5. Определения (1/2) Куча (heap) – область памяти, где размещаются объекты, создаваемые виртуальной машиной. Сборка мусора –
- 6. Определения (2/2) Собственное время исполнения – время, необходимое методу для выполнения своих инструкций. Время на выполнение
- 7. Цель профилирования По статистике, относительно небольшое число методов занимают больше всего процессорного времени. Поиск таких методов
- 8. Состав профилировщика Агент Загружается при старте виртуальной машины Java (Java Virtual Machine, JVM). Взаимодействует с JVM
- 9. Вопрос Зачем заниматься исследованием потребления памяти, если существует автоматическая сборка мусора?
- 10. Ответ Эффективность потребления памяти Java программой может существенно влиять на производительность и надежность этой программы.
- 11. Почему важно избавляться от утечек? В случае невозможности выделить память под новый объект возникает OutOfMemoryError. Аварийное
- 12. Запуск С версии NetBeans 6.0 профилировщик входит в состав среды разработки. Для начала профилирования проекта нужно
- 13. Возможности профилировщика Взаимодействие с SE, EE и ME приложениями. Оценка скорости выполнения отдельных частей программы. Отслеживание
- 14. Мониторинг приложения Полезен для получения общей статистики о работе приложения. Отображает в реальном времени сведения :
- 15. Мониторинг приложения: статистика Приводит наглядную статистику параметров работы.
- 16. Мониторинг приложения: другие возможности Сохранение результатов измерений в файл для последующего просмотра. Вызов сборщика мусора.
- 17. Анализ производительности Необходим для получения детализированной информации о методах приложения: Время исполнения, Количество вызовов. Можно анализировать:
- 18. Производительность блоков кода Для проведения анализа блока кода нужно выбрать интересующие классы и/или методы.
- 19. Производительность: результаты в реальном времени Каждый метод снабжен: временем исполнения, количеством вызовов, процентной шкалой от всего
- 20. Производительность: сохраненные результаты Для более детального анализа можно сделать слепок состояния приложения. По сохраненным данным анализа
- 21. Дерево вызовов Все вызванные методы помещаются в дерево Каждому узлу ставится в соответствие время работы и
- 22. Отсортированный список всех методов Каждый метод снабжен: временем исполнения, количеством вызовов, процентной шкалой от всего времени
- 23. Комбинированное представление Отображается соответствие стека вызова имени метода.
- 24. Анализ использования памяти Используется для оценки объема используемой памяти для нахождения неудаляемых объектов.
- 25. Анализ памяти: результаты в реальном времени Отслеживание состава кучи (heap). Таблица содержит: Имя класса. Количество доступных
- 26. Анализ памяти: сохраненные результаты Позволяет получить стек создания каждого объекта.
- 27. Профилирование внешней программы Среда разработки позволяет проводить анализ приложения, запущенного вне среды разработки.
- 28. Профилирование внешней программы: запуск целевого приложения Для удаленного анализа потребуется запустить целевое приложение с указанными параметрами.
- 29. Ссылки Сайт NetBeans: http://netbeans.org/ Описание профилировщика: http://www.netbeans.org/kb/60/java/profiler-intro.html Поиск утечек памяти: http://www.netbeans.org/kb/articles/nb-profiler-uncoveringleaks_pt1.html Онлайн-курсы: http://javapassion.com/ NetBeans IDE Field
- 30. Q&A
- 32. Скачать презентацию