gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 00:41:37 24 4
gpt4 key购买 nike

这是 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 时,您会看到最后包含的那 block 内存的内容。

如果您需要/想要将缓冲区清零,只需执行 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com