使用npm安装v8-profiler

时间:2013-08-04 02:49:43

标签: node.js npm v8

尝试时

npm install -g v8-profiler

我遇到了以下错误:

..\graph_node.cc(99): error C2039: 'GetRetainersCount' : is not a member of 'v8::HeapGraphNode' [C:\Users\username\AppData\Roaming\npm\node_modules\v8
-profiler\build\profiler.vcxproj]
          C:\Users\username\.node-gyp\0.10.15\deps\v8\include\v8-profiler.h(249) : see declaration of 'v8::HeapGraphNode'
..\graph_node.cc(132): error C2039: 'GetRetainedSize' : is not a member of 'v8::HeapGraphNode' [C:\Users\username\AppData\Roaming\npm\node_modules\v8-
profiler\build\profiler.vcxproj]
          C:\Users\username\.node-gyp\0.10.15\deps\v8\include\v8-profiler.h(249) : see declaration of 'v8::HeapGraphNode'
..\graph_node.cc(154): error C2039: 'GetRetainer' : is not a member of 'v8::HeapGraphNode' [C:\Users\username\AppData\Roaming\npm\node_modules\v8-prof
iler\build\profiler.vcxproj]
          C:\Users\username\.node-gyp\0.10.15\deps\v8\include\v8-profiler.h(249) : see declaration of 'v8::HeapGraphNode'
..\graph_node.cc(162): error C2039: 'GetDominatorNode' : is not a member of 'v8::HeapGraphNode' [C:\Users\username\AppData\Roaming\npm\node_modules\v8
-profiler\build\profiler.vcxproj]
          C:\Users\username\.node-gyp\0.10.15\deps\v8\include\v8-profiler.h(249) : see declaration of 'v8::HeapGraphNode'
  profiler.cc

看起来像编译问题。可能有什么问题? 我的系统有:

  1. Visual Studio 2010
  2. Windows SDK 7.1注意:如果安装时出错,可能是这样 链接会帮助你。
  3. Visual Studio 2010 SP1
  4. Windows SDK 7.1的Visual C ++ 2010 SP1编译器更新
  5. Python 2.7
  6. 如:https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

    中所述

2 个答案:

答案 0 :(得分:3)

我刚遇到同样的问题。看起来NodeFly's fork of v8-profiler包含Sean描述的修复程序,所以我安装了该版本:

npm install nodefly-v8-profiler

答案 1 :(得分:2)

根据GitHub上的this comment,一些API已从V8中删除,而v8-profiler尚未更新。

  

这是V8问题   v8-profiler使用了一些V8 API,但这些API在版本3.11.5中从V8中删除。

     

...

     

为了使用v8-profiler,最简单的方法是删除以下内容   方法和SetAccessor从graph_node.cc和。中调用构造函数内部   重建v8-profiler。

     
      
  • GraphNode :: GetRetainersCount
  •   
  • GraphNode :: GetRetainedSize
  •   
  • GraphNode :: GetRetainer
  •   
  • GraphNode :: GetDominator
  •   
     

但是,当然,如果你这样做,你就不能再看到支配者和保留者的信息了。