2013-02-14 15 views
16

È possibile dare un'occhiata al ciclo degli eventi per la diagnostica?node.js Diagnostica loop eventi

Mi piacerebbe sapere quanti eventi sono attualmente in attesa di esecuzione (escluso setTimeout/intervallo).

Aggiornamento: Mi piacerebbe farlo dall'interno del processo del nodo in esecuzione.

+0

interessante domanda, I' Rimanere in giro per scoprire se qualcuno ha qualche indizio, a corto di guardare nel codice del nodo. –

+0

Dtrace aiuterebbe? So che è usato per il profilo del nodo. – booyaa

+0

http://blog.nodejs.org/2012/04/25/profiling-node-js/ – TheBronx

risposta

10

aggiornato per nodejs 0,10 con setImmediate()

Mentre io non sono riuscito a trovare il numero di eventi in attesa in coda ho trovato un'altra metrica di salute che potrebbero essere utili:

var ts=Date.now(); 
setImmediate(function() 
{ 
    var delay=Date.now()-ts; 
}); 
Il ritardo

conterrà i millisecondi richiesti dall'accodamento dell'evento per l'esecuzione.

Ciò tiene conto anche degli eventi intensivi della cpu (il che non sarebbe possibile semplicemente guardando il numero di eventi).

La misura stessa influirà anche sulla coda eventi, ma questo dovrebbe avere un sovraccarico molto più basso rispetto a un profiler completo.

+2

sarebbe bello se potessimo effettivamente 'vedere' l'evento ... Suppongo che non hai mai trovato un modo per farlo? – tbarbe

0

L'agente di NodeFly monitora le prestazioni generali di Node.js incluso il Loop eventi. Si può leggere un paio di voci di blog taling su questa funzionalità:

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

Potete trovare e provare l'agente qui:

http://www.nodefly.com

+1

Sembra fare qualcosa di simile a quello che stavo descrivendo in precedenza: "L'agente NodeFly applica la funzione nextTick per ottenere i dati di temporizzazione per il ciclo degli eventi." – laktak

Problemi correlati