为什么Node在分配Int8Array时有时会挂起?

时间:2015-05-19 20:58:09

标签: javascript node.js typed-arrays

考虑以下两个程序:

// works.js
var buffer = new ArrayBuffer(16777216);
var HEAP8 = new Int8Array(buffer);

// fails.js
var HEAP8;
var buffer = new ArrayBuffer(16777216);
HEAP8 = new Int8Array(buffer);

运行node,然后输入.load works.js。一切似乎都很开心。现在退出node

再次运行node并输入.load fails.js

在我的机器上fails.js以交互方式引导node进程占用超过1GB的RAM和100%的CPU,最后的语句永远阻塞解释器。 works.js只是按预期运行并返回。

有什么好的理由来区别吗?或者我应该写一个错误报告?

奇怪的是,直接从命令行运行任一脚本都可以正常工作:

node works.js    # exits normally
node fails.js    # exits normally

更新:我在OS X 10.9.5上使用节点0.12.0

1 个答案:

答案 0 :(得分:1)

  

有什么好的理由来区别吗?或者我应该写一个错误报告?

我怀疑这是有充分理由的,你应该file a bug