Встраивание асинхронных исполнений в дерево вызовов JProfiler

YOUTUBE · 27.11.2025 04:27

Ключевые темы и таймкоды

Асинхронное выполнение и профилирование

0:00
  • Видео объясняет, как большинство приложений выполняют асинхронные вызовы, распределяя рабочие нагрузки по разным потокам.
  • Проблема с профилированием заключается в том, что стек вызовов узкого места производительности показывает только последнюю границу потока, что может быть недостаточно полезным для поиска причины проблемы.

Пример проекта с использованием Spring Webflux

0:28
  • В видео представлен пример проекта с использованием Spring Webflux, который выводит все перестановки заданного слова.
  • Идея реактивных потоков данных заключается в том, что перестановки вычисляются только настолько быстро, насколько браузер может считывать данные, и ни один поток не блокируется во время длительного выполнения.

Профилирование и анализ дерева вызовов

1:22
  • Видео объясняет, как включить запись процессора и анализировать запросы с помощью JProfiler.
  • В дереве вызовов можно увидеть, как создаются перестановки, но механика фреймворка реактивных потоков не видна, так как профилируется только собственный пакет приложения.
  • Для более детального анализа можно включить отслеживание исполнителей, которое связывает сайты отправки с сайтами выполнения для API службы executor.

Анализ дерева вызовов асинхронного выполнения

3:59
  • Видео показывает, как использовать встроенный анализ дерева вызовов асинхронного выполнения для отслеживания задач, не выходя за границы потоков.
  • Анализ дерева вызовов вызывается с помощью кнопки "Проанализировать" на панели инструментов, и результаты отображаются в виде статического анализа.