我正在浏览器客户端中设置一个基于 IndexedDB 的虚拟文件系统。我的假设是,将类型化数组存储为值将是有效的;特别是,我通过 保存 8 kB 数据块Int8Array
。我必须用什么方法来验证其有效性——实际使用的空间、实际的数据表示?
例如,在 Chromium 中,我可以看到似乎Int8Array
得到了正确的保存。但“清除存储”页面显示的存储大小高得令人怀疑 - 91 kB - 尽管我编写的第一个测试文件大小仅为 40 kB(40096 字节分布在 5 个密钥上,加上 24 字节用于元数据密钥)。键是非常小的数组,包含短字符串路径和数字。所以看起来存储需要的时间大约是预期的两倍:
相比之下,我在 Firefox 中找不到有关使用量的任何信息,但存储浏览器仅显示值的“数组”类型,并且它们以 JSON 对象表示的效率非常低,尽管这可能只是显示问题:
ArrayBuffer
一个相关的问题是,存储对象与Int8Array
查看对象之间有区别吗?ArrayBuffer
我尝试了两者,并且大小差异最小(如果我使用而不是作为传递给 IDB 的值,Chromium 使用 90.8 kB 而不是 90.9 kB Int8Array
)。
慕哥9229398
相关分类