【发布时间】:2018-12-11 11:49:06
【问题描述】:
我在这里挑战 HTML5 的极限。
我有这个问题:我有一个十亿双精度数(或整数)的 javascript 数组,反正有很多数字。我想将它存储在 HTML5 localStorage 中。
你可能会说,嘿,只使用 JSON.Stringify,但是,JSON.Stringify 会产生一个 200MB 的巨大字符串。因为,一个数字(例如 0.03910319)被存储为一个字符串(所以每个数字占用一些字节,而不是整个数字只占用几个字节)。
我在考虑先对数组中的数字进行base64编码,然后再应用JSON.stringify?
或者是 JSON.Stringify 然后 GZip 更好还是使用一些压缩功能?
想出您的创意,以高效的方式对包含十亿个整数/双精度的 JavaScript 数组进行编码/解码到 localStorage 变量。
TensorFlowJS
我查看了 TensorflowJS,我的数组基本上是一维张量。 TensorFlow 有一些模型的存储能力……也许这是一个可行的解决方案。
【问题讨论】:
-
使用压缩,然后如果结果仍然太大(5MB 大小限制 IIRC),使用 IndexedDB 而不是 LocalStorage,尽管它对于 IndexedDB 也可能太大。 (或者,这听起来根本不应该用于客户端存储)
-
@CertainPerformance 您建议哪种压缩方式? GZIP 对这个有好处吗?
-
看看lz-string。
-
不是我的专长,尝试各种选项,看看它们如何为您服务
-
@Jeto lz-string 看起来很有希望!
标签: javascript arrays tensorflow compression local-storage