我已经写一个小程序,产生阵列,它运行相当长的(几乎永远;-)):代替空数组内存消耗
var results = [];
var i = 1;
while (true) {
console.log(i++);
results.push([]);
}
当,我创建长度为i
的稀疏阵列,该程序崩溃相当快:
var results = [];
var i = 1;
while (true) {
console.log(i);
results.push(new Array(i++));
}
其实我起床i
等于17424,然后我得到一个错误信息,告诉我
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
Abort trap: 6
和Node.js带我回到控制台。由于唯一的区别是第二个产生比第一个更大的空数组,所以这意味着长度为n
的空稀疏数组占用空数组的长度为1
的空间的n
倍。
我是对的吗(具体到Node.js)?
一个问题:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
Abort trap: 6
为什么会出现这种行为比其他两个选项是不同的:如果我运行
var results = [];
var i = 1;
while (true) {
console.log(i);
var temp = [];
temp[i++] = i;
results.push(temp);
}
然后我起床到1286175,然后再次崩溃?
PS:我使用Node.js的0.12.0到在OS X上运行此
我无法看到稀疏阵列。您可能想要移除该标签。 – monocell
我已更新我的问题。 –