Как я могу профилировать свое приложение Node, чтобы увидеть, где я использую память и ресурсы процессора? - PullRequest
8 голосов
/ 05 сентября 2011

Мой сайт, CompassionPit.com , работает на Node.js.Я выпустил исходный код;он размещен на GitHub .Само приложение работает на Linode с 768 МБ оперативной памяти (я недавно обновил сервер; он был на 512 МБ).

В последнее время я получаю уведомления об использовании процессора от Linode: мы все чаще используем 90% и более.Я позвонил в Linode, чтобы узнать, что я могу сделать с обновлением моего доступа к ресурсам ЦП, но, по-видимому, пока я в порядке, поскольку, если мы максимально увеличим до 100%, мы можем перетекать в следующие 3 ядра (Linodes - это 4-процессорный Xenэкземпляры).

Как я могу профилировать свое приложение Node, чтобы видеть, где я использую память и ресурсы ЦП? Я предсказываю, что скоро мне потребуется реструктурировать приложение, которое будет запускатьсянастройка нескольких серверов, но я интуитивно верю, что правильное профилирование приведет к более разумным архитектурным решениям.Пожалуйста, поправьте меня, если я ошибаюсь.

Ответы [ 3 ]

3 голосов
/ 12 октября 2012

Инспектор узлов не может профилировать узел после версии 0.6.x

Следующий плагин был обновлен для работы с новой версией v8 (узел 0.7.x +). Это единственный, кроме nodetime.com, который все еще работает. Он использует реальный отладчик webkit:

https://github.com/c4milo/node-webkit-agent

Там также есть очень четкие инструкции.

1 голос
/ 03 ноября 2016

Начиная с v6.3.0, теперь вы можете запускать node --inspect your_script.js.

Узел будет печатать URL-адрес консоли, которую можно открыть в Chrome, к которой вы будете подключатьсяраскрыть полнофункциональный веб-инспектор, который можно использовать для профилирования процесса узла.

Запустите node --inspect --debug-brk, чтобы немедленно приостановить выполнение (что удобно, если вам нужно запустить сеанс профилирования сразу после запуска приложения)

0 голосов
/ 05 сентября 2011

Я добился достаточного успеха, используя https://github.com/dannycoates/node-inspector для профилирования. В нижней части файла README находится руководство по настройке.

Начиная с более поздних версий Node.js, часть профилирования узла-инспектора больше не работает. У меня был разумный успех с --prof (http://code.google.com/p/v8/wiki/V8Profiler) и https://github.com/c4milo/node-webkit-agent, как указано в ответе ниже.

...