用v8来分析nodejs

我有一个节点应用程序,我想使用节点分析器进行configuration文件。

所以,我跑了:

node --prof v8test.js 

然后,我下载了V8工具

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

然后尝试分析创build的文件(v8.log)

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

但是我得到了很多:

 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 

有人能帮我弄清楚发生了什么事吗?

日志文件格式似乎经常更改,因此您需要确保您使用的是正确版本的v8。 例如,如果configuration文件日志是由节点v0.10.18生成的,则必须使用v8版本3.14.5的节拍处理器进行分析。 为了找出在哪个版本的v8上build立了一个给定版本的节点,你可以在节点源代码分发中检查deps/v8/ChangeLog (节点自己的changelog在这方面似乎有点不可靠)。

确保你没有使用32位版本的分析工具运行64位版本的节点,反之亦然,当我偶然发现这个问题时,我遇到了类似的问题。

configuration节点应用程序的另外一个select是使用VTune Amplifier,而不是embedded在Node.js中的内部V8 profiler。 在这种情况下,您将看到如何通过您的函数的源代码分发性能指标。 V8configuration文件现在不能这样做。 看看这个post ,看看你是如何做到这一点。