Я хочу отслеживать, как долго выполняется каждый цикл цикла в node.js. Однако я не уверен в лучшем способе измерения этого. Лучший способ, которым я мог придумать, выглядит так:
var interval = 500;
var interval = setInterval(function() {
var last = Date.now();
setImmediate(function() {
var delta = Date.now() - last;
if (delta > blockDelta) {
report("node.eventloop_blocked", delta);
}
});
}, interval);
Я в основном выводю время цикла цикла событий, посмотрев на задержку setInterval
. Я видел такой же подход в модуле blocked node, но он чувствует себя неточным и тяжелым. Есть ли лучший способ получить эту информацию?
Обновление: Изменен код для использования setImmediate
, как это сделано hapi.js.