我唯一的目的是使用 vTune 对 Node.js 下的 JavaScript 代码进行分析。
我尝试按照这篇文章中出现的步骤进行操作:Profiling Nodejs with vTune,但我没有运气。
我使用的是 Debian 7 x86_64,我的 vTune Amplifier XE 版本是 2015(评估模式)。这些模块是在启动时加载的service sep3_15 start
,我可以用lsmod
. 另外,我构建了jitprofiling
vTune 提供的示例项目,它可以工作(我可以看到动态内容)。所以,我的问题是构建带有 vTune 支持的 Node.js。
如果我执行上述步骤,并且只vcbuild.bat nosign
使用./configure
and进行更改,make
则会收到错误“../src/node.cc:22:67: fatal error: v8-vtune.h: No such file or directory”,并且继续正确编译的唯一解决方案是在中添加下一行node.gyp
:
'include_dirs': [
// ...
'deps/v8/src/third_party/vtune',
// ...
这是获取包含(v8-vtune.h
)和编译节点的唯一方法。
但是当使用 vTune Amplifier 导入时,我看不到Dynamic code
JS 的源代码。
我尝试了许多不同的事情,例如构建节点以使用./configure --build
甚至进行调试./configure --debug --gdb
,然后强制从 执行node
二进制文件out/Debug/node
,而不是从out/Release/node
. 我可以看到它具有符号定义(strings node | wc -l
比发布版本大得多),因为它在使用 vTune 进行分析时不会引发警告。虽然我可以看到所有节点源代码,但我看不到Dynamic code
.
我什至试图强制变量gdbjit=on
和vtunejit=on
下deps/v8/Makefile
我尝试使用每晚构建 0.11.11 和最新的 0.11.14。
我不知道该怎么做。
编辑:我正在使用不同的选项进行更多的编译(如上所述)。最后,我可以看到它在 0.11.12 版本之前是如何工作的,但 0.11.13 和 0.11.14 都没有。