Node.js Диагностика цикла событий
Можно ли заглянуть в цикл событий для диагностики?
Я хотел бы знать, сколько событий в настоящий момент ожидает выполнения (исключая setTimeout/interval).
Обновление: я хотел бы сделать это из процесса node.
Ответы
Ответ 1
Обновлен для nodejs 0.10 с помощью setImmediate()
Пока мне не удалось найти количество ожидающих событий в очереди, я нашел еще один показатель работоспособности:
var ts=Date.now();
setImmediate(function()
{
var delay=Date.now()-ts;
});
Задержка будет содержать миллисекунды, которые потребовались в очереди для выполнения этого события.
Это также учитывает интенсивные события cpu (что было бы невозможно, просто глядя на # событий).
Само измерение также повлияет на очередь событий, но это должно иметь гораздо меньшие накладные расходы, чем полный профилировщик.
Ответ 2
Агент NodeFly контролирует общую производительность Node.js, включая Event Loop. Вы можете прочитать пару записей в блоге, связанных с этой функциональностью:
http://blog.nodefly.com/post/41119237822/monitoring-the-event-loop-in-node-js
http://blog.nodefly.com/post/41201793716/just-another-friday-night-chat-scaling-node-js-and
Вы можете найти и попробовать агента здесь:
http://www.nodefly.com