什么可能导致Node的性能突然减半?

时间:2017-07-28 10:30:19

标签: node.js performance

我在Node.js中的应用程序具有多次运行的性能测试。执行速度的中途降至原始值的一半:

RUN 1: 6604 ms
RUN 2: 6404 ms
RUN 3: 6386 ms
RUN 4: 6392 ms
RUN 5: 12755 ms
RUN 6: 12977 ms
RUN 7: 13124 ms

对代码的微不足道的改变可以推动这个悬崖向前或向后,但我无法弄清楚触发器是什么。

  • OS X上的节点v8.2.1。
  • 使用Chrome运行时无法恢复。
  • 总内存使用量是一个常数60MB,在运行之间添加强制GC无效。
  • 这项任务纯粹是算法(以非常复杂的方式计算Fibonacci序列),没有磁盘或网络访问。

有没有人认识到这个问题的指纹?

我为无法提供最小范例而道歉,一旦应用程序越过4,000行标记,问题才开始浮出水面。一旦应用程序被修剪回4,000行以下,问题就会消失。

编辑:在Debian中运行时的相同测试显示了更加戏剧性的悬崖。性能从8424毫秒急剧下降到45212毫秒。

1 个答案:

答案 0 :(得分:1)

我找到了答案。这是当前版本的Node使用的V8版本的问题。截至v9.0.0-nightly20170607eef94a8bf8/ 07-Jun-2017 20:00,此问题因new version of V8登陆而消失。

总结一下:它是Node.js中一个以前未知的错误,但是已经在夜间修复过的错误,将作为版本9发布。