Отслеживайте и анализируйте производительность приложения прямо в IntelliJ IDEA.
Профилируйте приложение прямо в IDE.
Чтобы начать профилирование в IntelliJ IDEA, нажмите на три точки в правом верхнем углу IDE или на значок «Play» рядом со строкой кода и выберите Profile with IntelliJ Profiler.
Профилировщик IntelliJ дает рекомендации по улучшению производительности прямо в редакторе: благодаря понятным аннотациям с цветовой маркировкой на полях профилирование становится гораздо эффективнее.
IDE дает возможность отслеживать статистику производительности в реальном времени, используя следующие метрики для запущенных приложений: ЦП, динамическая память, потоки и статическая память. Используя полученные в реальном времени данные, можно визуализировать потребление ресурсов, найти узкие места и понять, как те или иные события влияют на работу программы.
Просматривайте и анализируйте снэпшоты Java-приложения и навигируйтесь по ним в IDE.
Это представление помогает визуализировать стек вызовов для выбранного потока и посмотреть, как он меняется с течением времени. Чем шире фрейм стека, тем больше времени занимает выполнение метода. Цветные блоки отображают нативный код, код библиотек и пользовательский код.
На этой вкладке отображается процент времени процессора, используемого различными методами, путь выполнения метода в приложении, а также общее количество выборок. Дерево вызовов — удобный способ оценить общую активность приложения и найти проблемные пути выполнения.
В этом представлении отображается список методов, выполненных во время профилирования данных. Методы сортируются по совокупному времени сэмплирования. Для каждого выбранного метода есть несколько представлений, которые показывают либо вызывающие, либо вызываемые методы исследуемого метода.
Это визуальное представление активности потоков с течением времени. Оно помогает выявлять необычную активность сборщика мусора, проблемы с многопоточностью (например, блокировки livelocks) и т. п.
В IntelliJ IDEA можно проанализировать снэпшоты .hprof
, чтобы выявить утечки памяти в коде и найти объекты, потребляющие больше всего памяти.
Дампы потоков регистрируют состояние Java-приложения в определенный момент времени. Это помогает обнаруживать проблемы с синхронизацией в любых процессах.
Руководства