【问题标题】:Initialize Javascript ArrayBuffer with zeroes用零初始化 Javascript ArrayBuffer
【发布时间】:2016-08-27 05:15:42
【问题描述】:

有没有一种方法可以将 ArrayBuffer 中的所有索引设置为 0 并优化为快速?我知道我可以手动进行迭代,但我想知道是否有一些内置的东西可以快速完成,因为我想在每个动画帧中执行一次。

【问题讨论】:

  • 为什么不创建一个新的呢?所有内容在创建时初始化为零

标签: javascript arraybuffer


【解决方案1】:

没有理由将ArrayBuffer 中的内存初始化为0,因为这是在创建数组时自动完成的:

From MDN:

返回值

指定大小的新ArrayBuffer 对象。它的内容被初始化为0。

这个默认值可以追溯到过时的初始规范,所有浏览器都应该这样做。

此外,按理说内存在分配时会被清除,否则谁知道攻击者可以访问哪些内存。

出于所有其他目的:

如果您需要将其初始化为0 以外的值或清除现有数据,您可以使用the native fill method,您可以在ArrayBuffer 的类型化数组视图(如Uint8Array)上使用它。浏览器支持不是很好,所以你可能想为旧浏览器加载一个 polyfill。

【讨论】:

  • 实际上填充是在我的大脑后面,我最近用它来将一块数据初始化为 0。我想知道,请求新的新块的行为如何,比如 1000000 字节的数组缓冲区与在操作运行时间方面将其初始化为 0 相比。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 2018-07-26
  • 2020-07-18
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多