# Node.js 内存泄露

# Node.js 调用栈

function sum(i) {
  if (i === 1) {
    return 1;
  }
  return i + sum(i - 1);
}

const r = sum(20000); //10000
console.log("r", r);

运行时会报错:

RangeError: Maximum call stack size exceeded

因为node.js 默认的调用栈大小有限制,64位默认984KB(1MB)左右,可以适当的调大调用栈的大小

//设置栈为2MB
node --stack-size=2048 index.js  
  1. Node 案发现场揭秘 (opens new window)
  2. 三种比较典型的内存泄漏 (opens new window)
陕ICP备20004732号-3