我已经使用标准 apt-get 在 Ubuntu 64 位服务器上安装了 Node.js,并希望通过“--prof”标志来分析脚本。网络搜索显示应该有一个工具来处理位于“deps/v8/tools/linux-tick-processor”中的 v8.log 输出,但我似乎没有任何这些目录。它们是否带有本机安装?它们应该单独安装吗?如果是这样怎么办?谢谢
3 回答
你需要下载源包sudo apt-get source nodejs
。你提到的路径在那里。
您需要先scons prof=on d8
在 deps/v8 中构建调试器,这在 64 位机器上可能会遇到一些问题(v8 仅限 32 位),请参阅此处了解更多信息。
下面是我为 Node.js 0.10.25 和 0.10.26 做的事情:
我下载了与我正在使用的二进制文件相对应的 Node.js 源代码。(我正在进行 Debian 测试,这比 Node.js 网站上的版本有点落后。)
我检查了节点源中捆绑的 v8 版本。(看
deps/v8/ChangeLog
。Node.js 0.10.25 和 0.10.26 是 3.14.5。)我从v8 站点下载了这个版本的v8。
为什么?我尝试
make native
在 Node.jsdeps/v8
目录中运行,但Makefile
抱怨缺少测试目录。由此我们可以推断出 Node 开发人员并未包括整个 v8 发行版。曾几何时,我使用 Node 的早期版本(0.8.something)构建了 v8,deps/v8
但这次我决定使用不同的方法。正如 v8's中所解释的
build/README.txt
,在 v8 的源代码树的顶层,我做了:$ svn co http://gyp.googlecode.com/svn/trunk build/gyp
gyp
(按照 OrangeDog 的回答中的建议将我安装的链接build/gyp
不起作用。这就是我执行上述操作的原因。)我跑了:
$ CXX=g++-4.7 make native
为什么
CXX
设置?当我尝试使用默认的 gcc 时,我立即遇到了编译问题。我检查了版本。那是 4.8,我记得 Slashdot 上的一个故事,关于 4.8 如何给人们带来麻烦。所以我安装了4.7。工作得很好。我链接
out/native/d8
到我的PATH
. 这是因为linux-tick-processor
脚本在查找d8
. 最简单的解决方案是让它在我的PATH
. 你的旅费可能会改变。
毕竟,linux-tick-processor
可以与v8.log
Node 生成的文件一起使用。
要么安装源包 - sudo apt-get source nodejs
,要么切换到官方源,因为 ubuntu 包已经过时了。
要构建 d8,请转到deps/v8
目录。
- 在可以找到
build/gyp
的目录处创建符号链接(例如)。gyp
/usr/bin
- 运行
make native
。 - 复制/符号链接
out/native/d8
到 PATH 上的某个位置。