javascript - 新 Node 缓冲区已经有数据了吗?

标签 javascript node.js buffer

这是 Node 或预期行为的错误吗?可在 0.12.7io 3.1.0 中重现:

> new Buffer(5)
<Buffer 00 00 02 00 00>
> new Buffer(5)
<Buffer 00 00 00 00 00>
> new Buffer(5)
<Buffer 28 94 00 02 01>
> new Buffer(5)
<Buffer 00 00 00 02 00>
> new Buffer(5)
<Buffer 00 00 00 00 00>
> new Buffer(5)
<Buffer 00 98 94 00 02>

最佳答案

情况几乎一直如此。将内存清零会增加开销,因此当您创建新的缓冲区时,您会看到该内存块最后包含的内容。

如果您需要/想要将缓冲区清零,只需执行 buffer.fill(0);

更新:

使用 Node v6.0.0 Buffer creation API已经改变。现在,您可以通过 Buffer.alloc(size) 直接分配零填充,并通过 Buffer.allocUnsafe(size) 获取旧行为。这些新的 Buffer API 也已在 v4.5.0 中向后移植到 v4.x。 new Buffer() 风格的 Buffer 创建现在已被视为已弃用 ,并将在未来的主要版本中删除(如果我不得不猜测的话,最早可能是 v8.0.0,以允许硬弃用周期)

此外,从 Node v5.10.0(以及 v4.x 分支的 v4.5.0)开始,您可以将 --zero-fill-buffers 参数传递给 Node 二进制文件,该二进制文件将自动静默地传递创建时对所有缓冲区进行零填充。

关于javascript - 新 Node 缓冲区已经有数据了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284426/

相关文章:

javascript - javascript 中的 ul 和 li

javascript - 闭包中的箭头函数

node.js - 模块 'express' 未在 package.json 中列为依赖项

javascript - 夏洛克与野兽 - Hackerrank

json - 如何在没有中间字符串的情况下将node.js Buffer 转换为JavaScript 对象

c - 如何打印内存和缓冲区的长度?

java - 如何使用 Java Sound 缓冲和播放 OGG 文件中的声音数据

javascript - 页面加载器在本地主机上工作正常..但在服务器上永远不会淡出?

node.js - 如何使用现有的 Mongo 连接配置 Mongoose

javascript - 没有jquery的scrollTop动画