如何解决为什么只有WebAssembly.Memory.buffer的吸气剂?如果缓冲区是SharedArrayBuffer,则潜在的机制是什么?
我们可以通过WebAssembly.Memory
将WebAssembly内存设置为共享内存:
wasmMemory = new WebAssembly.Memory({
"initial": NUMBER,"maximum": NUMBER,"shared": true
});
WebAssembly.Memory.buffer
只有吸气剂,因此我不能执行以下操作:
buff = new SharedArrayBuffer(NUMBER);
wasmMemory.buffer = buff;
第一个问题:
它有这样的设计原因吗?我检查了SPEC,但没有找到答案。
也许 normal SharedArrayBuffer
和wasm的SharedArrayBuffer
的基础实现是相同的,尽管它们的instanceof
是相同的?
这个设计还有其他结果吗?
第二个问题:
在SharedArrayBuffer
中是否存在任何神奇的方法来将WebAssembly.Memory
放入其中?
我想这样做是因为我有一个新的类,它从原始的SharedArrayBuffer
扩展了,我也想在wasm中使用它。
解决方法
我也没有找到任何官方的解释,但是如果我不得不猜测,那是因为每当内存增长时,您的自定义缓冲区就会被默认缓冲区自动替换。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。