Каков наилучший способ профилировать выполнение javascript?

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

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

Ответ 1

Firebug

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

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

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

Blackbird

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

Ответ 2

У Chrome Developer Tools есть встроенный профилировщик.

Ответ 3

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

Функция профилирования функций JavaScript

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

Ответ 4

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

Ответ 5

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

Ответ 6

Для JavaScript, XmlHttpRequest, DOM Access, Rendering Times и сетевого трафика для IE6, 7 и 8 вы можете использовать БЕСПЛАТНО dynaTrace AJAX Edition