学习ES6:字符串扩展
学习ES6:let&const
Buffer
Node.JS 内存控制
笔记部分内容摘自 《深入浅出 Node.JS》 —— 朴灵
背景
一方面由于Node基于无阻塞、事件驱动,具有内存消耗低的特点,常用于开发高网络请求的应用,因此,在服务器端,需要对资源进行高效利用。另一方面node选择了V8,享受着V8带来的良好性能与语言特性,但是也受到了V8的一些限制。
如Node通过JS生成对象,V8会在内存中回收不再被使用的垃圾内存,一方面减少了内存管理的负担,但是另一方面也造成了内存管理上的不灵活,如V8在内存上有大小限制,32位系统上限制为0.7G,64位系统为1.4G,在应用中,若不小心触碰到这个极限值,会造成进程退出,并且在进行垃圾回收的过程中,会导致阻塞代码,程序暂停。
这篇笔记,只是大致了解node里内存的控制、清理机制,具体如何使用、排查解决内存问题未做详细记录。
异步编程(二)
笔记部分内容摘自 《深入浅出Node.JS》 —— 朴灵
解决方案
- 事件发布/订阅模式
- Promise/Deferred模式
- 流程控制库
事件发布/订阅模式
常常用来解耦业务逻辑
Node.js内的实现
Node自身提供的events模块,是事件发布/订阅模式的简单实现。
通过模块提供的监听、触发等方法实现。
1 | //订阅 |
事件发布/订阅模式 可以将一个事件与多个回调关联起来。一个事件的发布,可以传递给所以正在侦听此事件的监听器(数量设限,过多可能会导致内存泄漏)执行。