Позволяет ли Firefox профилировать приложения JS с использованием "агрегированных" диаграмм пламени?

Инструменты разработчика Firefox поддерживают диаграммы пламени, но кажется, что время используется как ось X:

В самом представлении Flame Chart вдоль оси X находится время. Снимок экрана выше охватывает период от 1435 мс до чуть более 1465 мс. Вдоль оси Y находятся функции в стеке вызовов в этот момент времени, верхний уровень вверху и листовая функция внизу. Функции имеют цветовую кодировку, чтобы их было легче различить.

Обычно в диаграммах пламени в качестве оси X используется процент, например: диаграммы пламени Пирма или Брендана Грегга.

Я считаю, что основанные на времени диаграммы пламени сбивают с толку и упускают возможность получать агрегированные значения времени для каждой функции (аналогично Дереву вызовов в отношении контента, но представленные более наглядно). Кроме того, если функция короткая, но вызывается много раз, ее легко пропустить, тогда как на "агрегированных" диаграммах пламени она будет выделяться заметно. Чтобы понять, почему временные диаграммы пламени сбивают с толку, приведу пример из другого поста - правда, в Chrome, но проблема в следующем:

Даже если какая-то функция займет 30% от общего времени, это не будет видно на приведенном выше графике.

Есть ли способ (через плагин или настройку), чтобы Firefox мог отображать агрегированные диаграммы пламени для выбранного временного интервала вместо временных?

1 ответ

Решение

Кажется, что расширение DevTools довольно ограничено, если только вы не создаете свою собственную панель, но у вас на самом деле нет доступа к профилировщику для генерации вашего Flame Graph.

Вы все еще можете сохранить свой записанный профиль в файл JSON, проанализировать его и создать свой собственный Flame Graph, который может рассчитывать общее агрегированное время выполнения.

Вы также можете попробовать надстройку Gecko Profiler для более продвинутого профилирования. Тем не менее, вы будете в одной лодке, поскольку вам нужно будет экспортировать ее, чтобы выполнить свои собственные агрегации для данных профиля.

Другие вопросы по тегам