2013-03-21 10 views
8

Ho un'applicazione di nodo che desidero profilare utilizzando il profilo del nodo.Nodi di profilo con v8

Quindi, prima mi sono imbattuto:

node --prof v8test.js 

Poi, ho scaricato gli strumenti V8

svn checkout http://v8.googlecode.com/svn/trunk/ v8; 
make dependencies; 
make native; 

poi ha cercato di analizzare il file creato (v8.log)

tools/linux-tick-processor ../v8.log 

Ma Ho un sacco di:

Code move event for unknown code: 0x289dd8475560 
Code move event for unknown code: 0x289dd84758e0 
Code move event for unknown code: 0x289dd8479280 
Code move event for unknown code: 0x289dd8482980 
Code move event for unknown code: 0x289dd84c2a80 
line 718730: unknown code state: undefined 
line 718731: unknown code state: undefined 
line 739575: unknown code state: undefined 
line 739577: unknown code state: undefined 

Qualcuno può aiutarmi a capire cosa sta succedendo?

+1

Non una risposta, ma Ben Noordhuis mi sta aiutando a ordinare lo stesso problema: https://groups.google.com/forum/?fromgroups=#!topic/nodejs/4NMoiPd2K6s – jcollum

risposta

5

Il formato del file di registro sembra cambiare molto frequentemente, quindi è necessario assicurarsi di utilizzare la versione corretta di v8. Ad esempio, se il log del profilo è stato generato con il nodo v0.10.18, è necessario analizzarlo con il processore tick per la versione v8 3.14.5. Per scoprire a quale versione di v8 è stata assegnata una determinata versione di nodo, è possibile controllare deps/v8/ChangeLog nella distribuzione di origine del nodo (il changelog del nodo sembra essere un po 'inaffidabile in questo senso).

0

Assicurati di non eseguire una versione di nodo a 64 bit con una versione a 32 bit degli strumenti di profilatura o viceversa. Ho avuto un problema simile quando l'ho fatto per sbaglio.

+0

come, amico, proprio come? ??????? * sospiri * – MaiaVictor

+0

@Viclib - Dal sito del nodo scaricare la versione a 32 o 64 bit, quindi quando si compilano gli strumenti v8, seguire le istruzioni di compilazione per crearli per un ambiente a 32 bit o 64 bit. Ho scoperto che ottenere 32 bit di nodo + creare una versione a 32 bit degli strumenti di profilazione era più facile da fare. – Tim

0

Un'ulteriore opzione per il profilo di un'applicazione di nodo consiste nell'utilizzare VTune Amplifier invece del profiler V8 interno incorporato in Node.js. In questo caso vedrai come le metriche di performance sono distribuite attraverso il codice sorgente della tua funzione. Il profilo V8 non può farlo ora. Guarda questo post per vedere come lo fai.