首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IndexedDB在隔离器之间共享内存

使用IndexedDB在隔离器之间共享内存
EN

Stack Overflow用户
提问于 2014-02-15 11:11:39
回答 2查看 685关注 0票数 5

我现在正在处理隔离体,想知道使用IndexedDB在隔离体之间共享数据是不是一种很好的通信方式?具体地说,我希望一个隔离能够写入它,然后告诉其他隔离它们可以读取它。这些数据一旦被写入,就会被认为是不变的,而且非常大。我想这样做的主要原因是因为我不想发送一个6MB的Map到3个不同的隔离,因为它在程序中有点密集。

EN

回答 2

Stack Overflow用户

发布于 2014-02-17 07:34:51

Web工作线程允许您在不复制的情况下在工作进程之间传递数组缓冲区。但是,一旦您将数组缓冲区传递给另一个worker,原始worker就会失去对其内容的访问权限。

因此您可以尝试将数据结构存储在数组缓冲区中以利用这一点。

请参阅此mdn articlehtml5rocks

因此,对于Dart,将您的数据存储在ByteData中,然后当通过Dart编译时,这不应该被复制,而是传输。

附注: Mozilla还在做一些实验,跨多个web workers共享可变访问数组缓冲区。这是为了允许emscripten将多线程c代码编译成javascript。这种共享访问可能需要一段时间才能实现标准化和广泛实施。

票数 2
EN

Stack Overflow用户

发布于 2014-02-15 17:49:58

如果您想要将数据存储在IndexedDB中,这是很好的。如果你这样做仅仅是为了优化通信,我不认为这是对直接发送的改进。序列化/反序列化通常是CPU最密集的部分。另外,使用IndexedDB对慢速磁盘进行一次写入和三次读取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21792901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档