3

在尝试的同时

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. 视觉工作室 2010
  2. Windows SDK 7.1 注意:如果您在安装时遇到错误,也许这个链接会对您有所帮助。
  3. 视觉工作室 2010 SP1
  4. 适用于 Windows SDK 7.1 的 Visual C++ 2010 SP1 编译器更新
  5. 蟒蛇 2.7

如中所述:https ://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

4

2 回答 2

3

我刚刚遇到了同样的问题。看起来NodeFly 的分支v8-profiler包含 Sean 描述的修复程序,所以我安装了那个版本:

npm install nodefly-v8-profiler
于 2014-01-21T04:51:29.757 回答
2

根据GitHub 上的这条评论,一些 API 已从 V8 中删除,并且 v8-profiler 尚未更新。

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

...

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

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

但是,当然,如果您这样做,您将看不到支配者和保留者信息。

于 2013-10-15T07:18:49.927 回答