Node.js内存与流:从今天开始忘记字符串吧
winter

你好,我是 winter。
在本节课,我们将会学习一些 Node.js 的基本机制,通过了解这些基本机制,我们可以更好地理解 Node.js 其它 API 的使用,也能够帮助我们进一步把思维过渡到系统编程,处理输入输出、文件、内存等系统时更加得心应手。
Buffer
上节课我们已经了解了进程的基础知识。在操作系统中,进程的核心特性就是它们拥有独立的内存空间。尽管我们的计算机中只有一组硬件内存设备,但是现代操作系统通过内存虚拟化技术,让每个进程看上去都拥有一块独立的内存空间。
在多数现代编程模型中,内存空间对数据的存取是以字节(Byte)为单位,一个字节由 8 个比特位(Bit)组成。
每个比特位可以是 0 或者 1,所以一个字节最多有 256 个不同状态。
通常字节中存储的信息会被理解成无符号整数类型,此时它的范围是 0~255。这个无符号整数,程序员的惯例是用十六进制来表示,刚好占据两个十六进制位,如 F0。
尽管硬件每次能够处理的内存信息可能多于一个字节,但在编程层面,我们无需过多关心,交给操作系统和编译 / 解释引擎即可。
在进程中,我们可以通过一个整数型(在 64 位系统中,是 64 位无符号整数类型)的内存地址来访问对应位置的数据。
在 Node.js 中并没有开放完全的内存访问能力,但是对于对性能要求较高的场景,我们可以通过 Buffer 来管理小段的内存。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. Node.js中的Buffer是用于管理小段内存的工具,适用于性能要求较高的场景。 2. 了解字符集和编码对于理解字符串和Buffer转换至关重要,需要熟悉ASCII、Unicode、UTF8、UTF16等字符集和编码方式。 3. JavaScript中字符串采用UTF16编码,需要注意BMP之外字符在JavaScript字符串中的处理方式。 4. Node.js中的事件机制以EventEmiter为核心,可以通过继承EventEmitter使类具有通过事件对外通知的能力。 5. Node.js中的流分为可读流、可写流和双工流,通过pipe方法可以方便地连接不同流。 6. Node.js提供了创建临时性流的方法,可以通过直接创建实例的方式来创建Readable、Writable和Duplex流。 7. Node.js提供了一种更简单的双工通讯流Transform,用于对输入的流做转换后变成输出流。 8. 背压是流式数据处理中的重要机制,需要正确实现_write来享受pipe自动化管理的背压。 9. 理解Node.js的内存、事件和流机制比理解表面的API重要得多,对于内存、事件和流的机制需要有深入的理解。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《重学前端》,新⼈⾸单¥59
《重学前端》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论