2013-03-21 4 views
8

Ich habe eine Knotenanwendung, die ich mit dem Knotenprofiler profilieren möchte.Profilierung von nodejs mit v8

Also zuerst i lief:

node --prof v8test.js 

Dann habe ich die v8 Werkzeuge

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

Dann versuchte die Datei heruntergeladen erstellt (v8.log)

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

Aber zu analysieren Ich bekomme eine Menge:

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 

Kann mir jemand helfen herauszufinden, was vor sich geht?

+1

keine Antwort, aber Ben Noordhuis hilft mir das gleiche Problem aussortieren: https://groups.google.com/forum/?fromgroups=#!topic/nodejs/4NMoiPd2K6s – jcollum

Antwort

5

Das Protokolldateiformat scheint sich ziemlich häufig zu ändern, Sie müssen also sicherstellen, dass Sie die richtige Version von v8 verwenden. Wenn das Profilprotokoll zum Beispiel mit dem Knoten v0.10.18 generiert wurde, müssen Sie es mit dem Tick-Prozessor für die Version v8.10 3.14.5 analysieren. Um herauszufinden, auf welcher Version von v8 eine bestimmte Knotenversion erstellt wurde, können Sie in der Quellenverteilung des Knotens deps/v8/ChangeLog überprüfen (das eigene Änderungsprotokoll des Knotens scheint in dieser Hinsicht etwas unzuverlässig zu sein).

0

Stellen Sie sicher, dass Sie keine 64-Bit-Version des Knotens mit einer 32-Bit-Version der Profiling-Tools ausführen oder umgekehrt, ich hatte ein ähnliches Problem, wenn ich das versehentlich gemacht habe.

+0

wie, Geck, nur wie? ??????? * seufzt * – MaiaVictor

+0

@Viclib - Von der Knotenstelle Download entweder 32 oder 64-Bit-Version dann, wenn Sie die v8-Tools kompilieren folgen ihren Build-Anweisungen, um sie für eine 32-Bit-oder 64-Bit-Umgebung zu bauen. Ich fand 32-Bit-Knoten bekommen + eine 32-Bit-Version der Profiling-Tools zu bauen war am einfachsten zu tun. – Tim

0

Eine weitere Option zum Profilieren einer Knotenanwendung ist die Verwendung von VTune Amplifier anstelle des internen V8-Profilers, der in Node.js eingebettet ist. In diesem Fall sehen Sie, wie die Leistungsmetriken über den Quellcode Ihrer Funktion verteilt werden. V8-Profil kann das jetzt nicht tun. Schauen Sie sich post an, um zu sehen, wie Sie das machen.