重学前端
程劭非(winter)
前手机淘宝前端负责人
107225 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 60 讲
开篇词+学习路线+架构图 (3讲)
重学前端
15
15
1.0x
00:00/00:00
登录|注册

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

你好,我是 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
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)