Подтвердить что ты не робот

Профилирование времени выполнения Node.JS(кода) в Linux

Я ищу метод для точного Node.JS профилирования из script времени выполнения в Linux.

Есть интересные проекты, такие как NodeTime.com Performance Profiler, но в этом профилируется время ввода/вывода httprequests и т.д., а не время выполнения строк кода.

Я ищу способ выяснить, где именно я могу оптимизировать свой Javascript, , где большую часть времени тратится и т.д.


Один интересный метод, который я видел, пытается создать FlameGraph с помощью DTrace в профиль Node.JS.

Однако dtrace очень специфичен для Solaris.

  • Для Linux (Debian/Ubuntu) dtrace можно найти в пакете sytemtap-sdt-dev. Однако stap dtrace не то же самое, и ему не хватает всех соответствующих крючков/зондов.
  • Пол Фокс сделал порт из версии Unix. Это больше возможностей, но как-то крючки/зонды не работают в пользовательском пространстве как Solaris, а также не могут использоваться для профиля Node.
    ftp://crisp.dyndns-server.com/pub/release/website/dtrace/ (его довольно легко создать, см. README.)
  • Также есть порт Oracle, но noone рекомендовал бы его. По-видимому, у него только около 0,1 процента зондов порт Поля Фокс. (Что иронично, потому что Oracle раньше Sun, оригинальные авторы dtrace для Solaris)

Как в Linux, используя терминал или используя Eclipse, могу ли я профилировать код сценариев Node.JS?. Я ищу что-то конкретное, например, Zend Profiler показывает время выполнения каждой команды в коде PHP-скриптов.

4b9b3361

Ответ 2

"look" - очень хороший инструмент, сделанный Вадимом для профилирования приложения NodeJS.

Взгляните сюда:

https://github.com/baryshev/look

Ответ 3

https://www.npmjs.org/package/node.profiler Именно то, что вам нужно... Он запускает ваш проект в режиме мониторинга, и он генерирует график после того, как вы закончите с подробностями о функциях, каждый раз, когда он был вызван, и время, которое он провел там.