Vorrei monitorare per quanto tempo ogni esecuzione del ciclo eventi in node.js ha luogo. Tuttavia sono incerto sul modo migliore per misurare questo. Il modo migliore che potevo venire con un look come questo:Come rilevare e misurare il blocco del ciclo di eventi in 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);
ho praticamente dedurre il tempo di esecuzione ciclo di eventi, cercando in ritardo di un setInterval
. Ho visto lo stesso approccio nel modulo di nodo blocked ma sembra inaccurato e pesante. C'è un modo migliore per ottenere queste informazioni?
Aggiornamento: modificato il codice per utilizzare setImmediate
come fatto da hapi.js.
[La gente hapi.js lo fa in un modo simile] (https://github.com/hapijs/good/blob/ecd705719777af5810dc224001940205cfebd2eb/lib/process.js#L14-L21), e stanno monitorando questo valore costantemente, quindi sembra che questa sarebbe la tua scommessa più sicura. –
Grazie per il puntatore. Il loro uso os 'setImmediate' è ancora migliore. –