Можно ли заглянуть в цикл событий для диагностики?
Я хотел бы знать, сколько событий в настоящий момент ожидает выполнения (исключая 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. Вы можете прочитать пару записей в блоге, связанных с этой функциональностью: