gpt4 book ai didi

javascript - 读取 SharedArrayBuffer 中的内存

转载 作者:行者123 更新时间:2023-11-29 14:41:46 26 4
gpt4 key购买 nike

为了尝试对大型 TypedArray 进行并行处理,我尝试使用名为 SharedArrayBuffer 的 mozilla 扩展程序.

这些对象允许并发工作人员(或主线程)处理相同的内存(不会对 postMessage 的调用者不可用)。

不幸的是, 我无法读取那些对象的内存 我无法在它们上使用 DataView。

我用 DataViews 尝试了以下操作避免整个缓冲区复制:

var arrayBuffer = new SharedArrayBuffer(4); // 4 bytes
var dataView = new DataView(new SharedArrayBuffer(4)); // fails with error below
// some usage here
var first = dataView.getFloat32(0)

失败并出现错误:

TypeError: DataView: expected ArrayBuffer, got SharedArrayBuffer

我可以通过从缓冲区返回一个 TypedArray 来读取内存, 但这会克隆内存,因此会破坏共享内存的性能增益 ,因为它看起来开销很小,例如正如这个 bug answer 所建议的但是我必须提前知道类型。

有什么解决办法吗?

最佳答案

我认为答案是否定的,至少目前是这样。

有一个相关的bug在 Bugzilla 上:

The SharedArrayBuffer spec says that DataView is allowed on SharedArrayBuffer, and that SharedArrayBuffer.isView() on a DataView should return true. Neither is the case in Firefox at the moment.

关于javascript - 读取 SharedArrayBuffer 中的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420570/

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