# 三.分配内存
# 1.2 v8 内存管理
# 1.2.1 v8 内存限制
- 在 64 位操作系统可以使用 1.4G 内存
- 在 32 位操作系统可以使用 0.7G 内存
# 1.2.2 v8 内存管理
- js 对象都是通过 v8 进行分配管理内存的
- process.memoryUsage 返回一个对象,包含了 Node 进程的内存占用信息
- rss(resident set size):所有内存占用,包括指令区和堆栈
heap Tatal:"堆"占用的内存,包括用到的和没用到的
heapUsed:用到的堆的部分。判断内存泄漏,以 headUsed 字段为准
external:V8 引擎内部的 C++对象占用的内存
# 为何限制内存大小
# 因为 V8 垃圾收集工作原理导致的,1.4G 内存完成一次垃圾收集需要 1 秒以上
# 这个暂停时间成为 Stop The Word,在这个期间,应用性能和响应能力都会下降
# 如何打开内存限制
# 一旦初始化成功,生效后不能再修改
# -max-new-space-size,最大 new space 大小,执行 scavenge 回收,默认 16M,单位 KB
node --max-old-space-size=2000 app.js 单位是M
1
# -max-old-space-size,最大 old sapce 大小,执行 MarkSweep 回收,默认 1G,单位 MB
node --max-new-space-size=1024 app.js单位是kb
1