Node.js 收集流数据用数组拼接字符串与 Buffer.concat 在内存峰值上有何不同?
Node.js 收集流数据用数组拼接字符串与 Buffer.concat 在内存峰值上有何不同? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer.concat 内存 峰值 收集流的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 60 页,收录第 2951–3000 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
Node.js 收集流数据用数组拼接字符串与 Buffer.concat 在内存峰值上有何不同? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer.concat 内存 峰值 收集流的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.from 拷贝与 Buffer.allocUnsafe 的小 Buffer 池化机制在何时会共享底层 ArrayBuffer? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer poolSize allocUnsafe 共享 ArrayBuffer的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.slice 共享内存而 Buffer.from(buffer) 拷贝,这一差异如何影响缓存大文件切块的释放? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer slice 共享内存 拷贝 释放的工作方式、判断依据、项目边界和常见误区。
Node.js 把 Buffer 转成 ArrayBuffer 时为什么直接用 buffer.buffer 可能带出池内多余字节? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer 转 ArrayBuffer byteOffset byteLength pool的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer 与 Uint8Array、DataView 在读取网络二进制包头时应如何分工? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer Uint8Array DataView 二进制包头的工作方式、判断依据、项目边界和常见误区。
解释 cork 暂存写入与 uncork 释放的关系,使用 writev 示例验证小写入批量交付,并说明嵌套调用计数、end 的处理、背压等待死锁与无批处理实现时的成本。
Node.js 用 crypto Hash 对流式下载做校验时,update 顺序和最终 digest 时机有哪些坑? 本文先给出可直接复述的结论,再用最小代码说明Node.js crypto Hash stream update digest 顺序的工作方式、判断依据、项目边界和常见误区。
stream.destroy(err) 与 writable.end() 有什么区别? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream destroy end error 事件的工作方式、判断依据、项目边界和常见误区。
Node.js 流处理内存持续上涨时,如何区分是未遵守背压、Buffer 视图钉住大内存还是对象模式堆积? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream 内存上涨 背压 Buffer slice 诊断的工作方式、判断依据、项目边界和常见误区。
Node.js Duplex 与 Transform 的差别是否只是名字不同,哪些 I/O 场景必须用 Duplex? 本文先给出可直接复述的结论,再用最小代码说明Node.js Duplex Transform 区别 场景的工作方式、判断依据、项目边界和常见误区。
Node.js 读取未知编码文本流时,latin1 与 utf8 混用会怎样破坏字节,何时应先探测 BOM? 本文先给出可直接复述的结论,再用最小代码说明Node.js 编码 BOM latin1 utf8 流的工作方式、判断依据、项目边界和常见误区。
Node.js Writable 在 end 之后再 write 会触发什么错误,为什么不能靠 try/catch 捕获异步流错误? 本文先给出可直接复述的结论,再用最小代码说明Node.js write after end ERR_STREAM_WRITE_AFTER_END的工作方式、判断依据、项目边界和常见误区。
区分可读耗尽、可写完成和资源关闭,说明 finished 如何组合成功与异常结束、双工流的等待范围和 cleanup 选项,并用 PassThrough 示例验证写入完成后仍有可读数据。
区分自动推送的 flowing 模式和主动 read 的 paused 模式,解释 readableFlowing 三种状态、data 与 readable 的使用方式、暂停恢复及混用消费接口造成的理解偏差。
Node.js 的 Readable、Writable、Duplex、Transform 分别解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream 四种流类型 Readable Writable Duplex Transform的工作方式、判断依据、项目边界和常见误区。
Node.js 顺序读取超大文件为什么流式加背压比 readFile 全量读入更适合,何时 readFile 反而更简单? 本文先给出可直接复述的结论,再用最小代码说明Node.js 大文件 createReadStream readFile 背压的工作方式、判断依据、项目边界和常见误区。
Node.js fs.createReadStream 打开失败时错误发生在哪一步,调用方如何避免把 open 错误当作数据错误重试? 本文先给出可直接复述的结论,再用最小代码说明Node.js createReadStream open error ENOENT的工作方式、判断依据、项目边界和常见误区。
Node.js fs.createReadStream 的 start、end 选项如何实现 HTTP Range 分段下载且避免越界? 本文先给出可直接复述的结论,再用最小代码说明Node.js fs.createReadStream start end Range的工作方式、判断依据、项目边界和常见误区。
Node.js 将文件流压缩后发给 HTTP 客户端时,为什么 Content-Length 通常不可预知,应改用什么头? 本文先给出可直接复述的结论,再用最小代码说明Node.js gzip 流式 Content-Length Transfer-Encoding chunked的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.from(str, 'hex') 遇到奇数长度或非法字符时行为如何,校验责任在哪? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer.from hex 非法字符 截断的工作方式、判断依据、项目边界和常见误区。
Node.js 流的 highWaterMark 怎么调,越大吞吐就越高吗? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream highWaterMark 内存 吞吐 调优的工作方式、判断依据、项目边界和常见误区。
Node.js 服务端用 fs.createReadStream 经 pipeline 写 HTTP 响应时,客户端中途断开会触发哪些事件? 本文先给出可直接复述的结论,再用最小代码说明Node.js HTTP 下载 pipeline 客户端断开 aborted的工作方式、判断依据、项目边界和常见误区。
Node.js 接收 HTTP 上传流时如何用背压限制落盘速度,超限请求应在哪一层截断? 本文先给出可直接复述的结论,再用最小代码说明Node.js HTTP 上传流 背压 大小限制的工作方式、判断依据、项目边界和常见误区。
实现 Node.js 自定义 Readable 时 _read(size) 内 push() 返回 false 应如何控制数据源? 本文先给出可直接复述的结论,再用最小代码说明Node.js 自定义 Readable _read push 返回 false的工作方式、判断依据、项目边界和常见误区。
实现 Node.js 自定义 Writable 时 _write 的 callback 应何时调用,延迟调用会引发什么问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js 自定义 Writable _write callback的工作方式、判断依据、项目边界和常见误区。
Node.js 用 Transform 解析 NDJSON 时,最后一块没有换行也应产出一条记录,应放在哪里处理? 本文先给出可直接复述的结论,再用最小代码说明Node.js NDJSON Transform flush 最后一条的工作方式、判断依据、项目边界和常见误区。
多个 Node.js Readable 同时 pipe 到同一个 Writable 时,如何避免 chunk 交错导致文件损坏? 本文先给出可直接复述的结论,再用最小代码说明Node.js 多 readable 同一 writable 交错 pipe的工作方式、判断依据、项目边界和常见误区。
Node.js 流的 objectMode 改变了 highWaterMark 和 chunk 的什么计量方式? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream objectMode highWaterMark chunk的工作方式、判断依据、项目边界和常见误区。
用 Node.js PassThrough 给上传流统计字节数时,它是否改变数据内容,又如何避免自身成为背压死角? 本文先给出可直接复述的结论,再用最小代码说明Node.js PassThrough 字节统计 背压的工作方式、判断依据、项目边界和常见误区。
Node.js 用 pause/resume 对 Readable 做限速时,为什么不能保证精确速率,还要配合什么机制? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable pause resume 限速 背压的工作方式、判断依据、项目边界和常见误区。
比较 pipe 的连接与背压能力和 pipeline 的整链完成、错误及销毁管理,用对象转换示例验证成功与中途失败,并说明 HTTP 响应销毁后无法补写错误页及流外资源的清理责任。
Node.js stream/promises 的 pipeline 与 finished 相比事件回调写法解决了哪些收尾竞态? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream promises pipeline finished的工作方式、判断依据、项目边界和常见误区。
解释 read 返回 null 的多种情况,区分生产方 push(null)、缓冲读完和 end 事件,并用可控 Readable 示例验证暂时无数据、随后到达的数据以及 readableEnded 的变化。
消费方对 Node.js Readable 调用 destroy 后,底层定时器或数据库游标为什么不一定自动释放? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable destroy 底层资源 清理 _destroy的工作方式、判断依据、项目边界和常见误区。
Node.js Readable.from 把数组或异步迭代器转成流时,背压是否自动生效? 本文先给出可直接复述的结论,再用最小代码说明Node.js Readable.from async iterator 背压的工作方式、判断依据、项目边界和常见误区。
Node.js net.Socket 作为 Duplex 出现 EAGAIN 或写返回 false 时,应用层应暂停什么操作? 本文先给出可直接复述的结论,再用最小代码说明Node.js net.Socket Duplex write false EAGAIN 背压的工作方式、判断依据、项目边界和常见误区。
Node.js 把一个上传流同时写磁盘和转发到远端时,复制成两个 PassThrough 为什么会放大背压? 本文先给出可直接复述的结论,再用最小代码说明Node.js 流 tee 分支 PassThrough 背压的工作方式、判断依据、项目边界和常见误区。
Node.js Transform 按行切分文本时,换行符被拆到两个 chunk 应如何保留状态而不丢行? 本文先给出可直接复述的结论,再用最小代码说明Node.js Transform 按行分割 跨 chunk 换行的工作方式、判断依据、项目边界和常见误区。
Node.js Transform 的 _transform 与 _flush 分别适合处理哪类边界,GZIP 收尾为什么属于 _flush? 本文先给出可直接复述的结论,再用最小代码说明Node.js Transform _transform _flush 边界的工作方式、判断依据、项目边界和常见误区。
Node.js 流式按 chunk 解码 UTF-8 时,为什么不能直接对每个 Buffer 调 toString 拼接? 本文先给出可直接复述的结论,再用最小代码说明Node.js UTF-8 跨 chunk string_decoder toString的工作方式、判断依据、项目边界和常见误区。
Node.js Worker 返回 ArrayBuffer 结果时,共享 SharedArrayBuffer 与 postMessage 拷贝各自适合什么同步需求? 本文先给出可直接复述的结论,再用最小代码说明Node.js worker SharedArrayBuffer ArrayBuffer postMessage的工作方式、判断依据、项目边界和常见误区。
Node.js zlib 变换流在高压缩比数据上输出突增时,背压如何沿 pipeline 反向传到文件读端? 本文先给出可直接复述的结论,再用最小代码说明Node.js zlib transform 背压 pipeline 文件读的工作方式、判断依据、项目边界和常见误区。
Nitro 的缓存系统支持哪些后端存储?如何配置 Redis 作为默认缓存后端? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro 缓存后端 Redis 配置的工作方式、判断依据、项目边界和常见误区。
Nitro 如何实现基于 HTTP 头部和路径的缓存策略?如何配置一个特定接口返回 1 小时内不重新请求的响应? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro 缓存策略 HTTP 头部 响应缓存的工作方式、判断依据、项目边界和常见误区。
当 Nitro 代理外部 API 时,如何处理 CORS 问题?是否需要在服务端手动添加 `Access-Control-Allow-*` 头? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro 外部 API CORS 代理 头设置的工作方式、判断依据、项目边界和常见误区。
在 Nuxt 3 中,如何通过 Nitro 优化 GraphQL 查询的响应时间?是否支持预执行或结果缓存? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro GraphQL 优化 预执行 缓存的工作方式、判断依据、项目边界和常见误区。
在 Serverless 环境中,如何通过 Nitro 配置让应用实例保持活跃以减少冷启动延迟? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro Keep-Alive 冷启动优化的工作方式、判断依据、项目边界和常见误区。
如何在 Nitro 中配置日志输出以调试数据获取过程?是否支持按请求路径记录缓存命中情况? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro 日志记录数据获取与缓存命中的工作方式、判断依据、项目边界和常见误区。
Nitro 如何配置以优先服务静态资源而非动态路由?在部署时如何防止路由冲突? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro 优先服务静态资源配置方法的工作方式、判断依据、项目边界和常见误区。
部署到 Serverless 平台时,Nitro 如何处理 API 路由的冷启动与长期保持?需要哪些配置优化性能? 本文先给出可直接复述的结论,再用最小代码说明Nuxt Nitro Serverless 冷启动 保持连接的工作方式、判断依据、项目边界和常见误区。