《深入浅出Node.js》第5章 内存控制(未完)
@by Ruth92(转载请注明出处)
第5章 内存控制
基于无阻塞、事件驱动建立的 Node 服务,具有内存消耗低的优点,非常适合处理海量的网络请求。
内存控制正是在海量请求和长时间运行的前提下进行探讨的。
一、V8 的垃圾回收机制与内存限制
-
V8 的内存限制
在一般的后端开发语言中,在基本的内存使用上没有什么限制,但在 Node 中通过 JavaScript 使用内存时,只能使用部分内存,这样,再单个 Node 进程的情况下,计算机的内存资源无法得到充足的使用。
☞ 主要原因:Node 基于 V8 构建,在 Node 中使用的 JavaScript 对象基本上都是通过 V8 自己的方式来进行分配和管理的。
-
V8 的对象分配
在 V8 中,所有的 JavaScript 对象都是通过堆来进行分配的。
✔ V8 为何要限制堆的大小?
-
表层原因:V8 最初为浏览器而设计,不太可能遇到用大量内存的场景。对于网页来说,V8 的限制值已足够。
-
深层原因:V8 的垃圾回收机制的限制。
-
-
V8 的垃圾回收机制
二、高效使用内存
三、内存指标
四、内存泄漏
五、内存泄漏排查
六、大内存应用
Scoop It and Enjoy the Ride!