我有以下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
答案 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进行编译,您可能想在项目的问题跟踪器中填写一个问题。