Как лучше всего профилировать выполнение javascript? [закрыто]


94

Есть ли хороший профилировщик для javascript? Я знаю, что firebug поддерживает некоторую поддержку кода профилирования. Но я хочу определить статистику в более широком масштабе. Представьте, что вы создаете много кода javascript и хотите определить, какие на самом деле узкие места в коде. Сначала я хочу увидеть статистику профиля каждой функции javascript и время выполнения. Следующим шагом будет включение функций DOM. В сочетании с действиями, которые замедляют работу, такие как операции с деревом рендеринга, было бы идеально. Я думаю, что это произведет хорошее впечатление, если производительность упадет в моем коде, при подготовке DOM или в обновлениях дерева / визуализации рендеринга.

Есть ли что-то близкое к тому, что я хочу? Или что было бы лучшим инструментом для достижения большей части того, что я описал? Будет ли это самокомпилированный браузер плюс движок javascript, расширенный функциональностью профиля?


Если NODE_ENV=production node --prof app.jsэтого не произойдет, см. Альтернативные варианты на stackify.com/node-js-profilers или softwarerecs.stackexchange.com .
— Сес Тиммерман,

Ответы:


63

Firebug

Firebug предоставляет подробный отчет о профилировании. Он покажет вам, сколько времени занимает каждый вызов метода, в гигантской (подробной) таблице.

console.profile([title])
//also see
console.trace()

Вам необходимо позвонить, console.profileEnd ()чтобы завершить блокировку профиля. См. Консольный API здесь: http://getfirebug.com/wiki/index.php/Console_API

Blackbird

Blackbird ( официальный сайт ) также имеет более простой профайлер (его можно скачать отсюда )


Я написал, что знаю firefox. Я хочу получать больше статистики из браузера, влияющего на выполнение javascript.
— Норберт Хартл,

1
То же самое и с Firebug, и вы можете профилировать прямо с консоли, если не хотите его кодировать.
— Chris B

1
Firebug - лучший инструмент, который вы получите.
— Саша Чедыгов

1
То же самое работает в Safari Web Inspector
— olliej

9
Firebug - это хорошо и все такое, но я не могу поверить, что здесь так много людей скандирующих «Firebug, Firebug!» сразу после того, как ОП явно заявил, что хочет профилировать свой код из нескольких браузеров.
— JMTyler

20

Инструменты разработчика Chrome имеют встроенный профилировщик.


2
+1, Speed ​​Tracer - это хорошо, и важно (как упоминалось в OP) профилировать свой код не только в Firefox, чтобы увидеть, как на него влияет отдельный браузер.
— JMTyler

12

Хотя Firebug уже упоминался, еще одна вещь, на которую вы хотели бы обратить внимание с Firebug, - это плагин для Firebug под названием FireUnit ; Джон Ресиг говорит об этом в своем блоге:

Профилирование вызовов функций JavaScript

Надеюсь, это поможет.


Кажется, вот ссылка для скачивания - github.com/jeresig/fireunit/tree/master
— T.Todua

4

Firebug + Firefox просто необходим. Панель инструментов разработчика IE 8 также имеет встроенный профилировщик (IE 8 поставляется с панелью инструментов разработчика).


4

Веб-инспектор Safari 4 также включает профилировщик (хотя версия в nightlies улучшена по сравнению с рекурсивными вызовами функций). Web Inspector также поддерживает API профилировщика Firebug.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.