Как лучше всего профилировать выполнение 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 ( официальный сайт ) также имеет более простой профайлер (его можно скачать отсюда )

geowa4
источник
Я написал, что знаю 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.

оллией
источник
4

Для JavaScript, XmlHttpRequest, доступа к DOM, времени рендеринга и сетевого трафика для IE6, 7 и 8 вы можете использовать БЕСПЛАТНУЮ версию dynaTrace AJAX Edition.

Андреас Грабнер
источник
Пожалуйста, инструкция, как установить это как аддон / расширение в браузере.
T.Todua