11

我有一个节点应用程序,我想使用节点分析器对其进行分析。

所以首先我跑了:

node --prof v8test.js

然后,我下载了 v8 工具

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

然后尝试分析创建的文件(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

谁能帮我弄清楚发生了什么?

4

3 回答 3

7

日志文件格式似乎经常更改,因此您需要确保您使用的是正确的 v8 版本。例如,如果配置文件日志是使用节点 v0.10.18 生成的,则您必须使用 v8 版本 3.14.5 的滴答处理器对其进行分析。要了解给定版本的 node 构建于哪个 v8 版本,您可以查看deps/v8/ChangeLognode 源分布(node 自己的更改日志在这方面似乎有点不可靠)。

于 2013-09-19T09:43:02.940 回答
0

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

于 2013-05-11T04:28:26.013 回答
0

分析节点应用程序的另一种选择是使用 VTune Amplifier 而不是嵌入在 Node.js 中的内部 V8 分析器。在这种情况下,您将看到性能指标是如何通过函数的源代码分布的。V8 配置文件现在无法做到这一点。看看这篇文章,看看你是如何做到的。

于 2014-02-20T17:11:12.290 回答