以下代码在node中运行会报错
let arr = []; for (let i = 0; i < 100000000; i++) { arr.push(1); } console.log(arr.length);
不会报错啊?你会报什么错,截个图?
@KevinZoro
报错是内存不足,并不代表数组长度不能达到 2^32 - 1。
@waitingsong node是有什么内存限制吗?
@shizengzhou 有哇
32位机器只有 ~700 MB 的堆限制
使用buffer吧
来自酷炫的 CNodeMD
这种情况你只能适用buffer或者redis
V8的运行内存是有限的~
上面说的对,v8的堆内存有限制,64位系统大概1.4g,32位0.7g。buffer的申请的内存是堆外内存,所以不受这个限制。。。或者启动脚本的时候加上 --max-old-space-size或者–max-new-space-size 来设置老生代内存空间和新生代内存空间。。。。刚看完深入浅出可用上了。2333
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
不会报错啊?你会报什么错,截个图?
@KevinZoro
报错是内存不足,并不代表数组长度不能达到 2^32 - 1。
@waitingsong node是有什么内存限制吗?
@shizengzhou 有哇
32位机器只有 ~700 MB 的堆限制
使用buffer吧
来自酷炫的 CNodeMD
这种情况你只能适用buffer或者redis
V8的运行内存是有限的~
上面说的对,v8的堆内存有限制,64位系统大概1.4g,32位0.7g。buffer的申请的内存是堆外内存,所以不受这个限制。。。或者启动脚本的时候加上 --max-old-space-size或者–max-new-space-size 来设置老生代内存空间和新生代内存空间。。。。刚看完深入浅出可用上了。2333