node-inspector / v8-profiler未启动分析或创建v8日志文件

时间:2014-04-05 00:51:03

标签: node.js node-inspector

我有以下nodejs代码

var profiler = require("v8-profiler");

profiler.startProfiling("FooBar");

doSomethingAsync(function() {
  profiler.stopProfiling("FooBar");
});

我跑了这个:

$ time node --prof --prof_lazy test/performance/performance-test.js

但是我没有收到v8.log文件。

我在安装与this issue with node-profiler相关的v8-profiler软件包时遇到了一些问题。我使用MacPorts,g ++默认使用/ opt / local / bin / g ++(我也使用MacPorts提供的nodejs包)我设法通过使用XCode附带的g ++来解决-arch错误

$ CXX="xcrun g++" npm install v8-profiler

它可能是一个红色的鲱鱼,但值得一提的是,由此产生的v8-profiler二进制对象不能与我的nodejs安装一起使用。

$ node --version
v0.10.22

$ npm --version
1.3.15

1 个答案:

答案 0 :(得分:0)

如果要获取v8.log文件,则需要添加--log选项。

$ node --prof --prof_lazy --log test/performance/performance-test.js

但是,使用v8-profiler时,日志文件不包含分析数据。我想这是因为profiler.stopProfiling()将分析数据返回给调用者。请参阅项目README中的示例:

profiler.startProfiling([name])                   //begin cpu profiling
var cpuProfile = profiler.stopProfiling([name])   //finish cpu profiling

还有另一个模块允许您手动启动/停止探查器,同时将分析数据写入v8.log:node-profiler。我没有设法使用Node v0.8或v0.10进行编译,您可能想在项目的问题跟踪器中填写一个问题。