最好的存储方式是什么?直接在js文件中的100个双精度序列?每个序列的长度为ca. 10 000或更多。
要求
javascript文件必须尽快执行
我可以根据需要迭代序列(我不需要在js执行时解码所有数字。它们将在事件中解码。)
它不应占用太多空间
最简单的选择可能是使用CSV格式的字符串,但是双打不会以最有效的方式存储,对吗?
另一种选择可能是将数字存储在Base64字节数组中,但后来我不知道如何将base64字符串读入double。
编辑:
我想在Adobe 3D注释中使用双打来转换3D节点的Matrix4x4。 Adobe允许导入外部文件,但它非常复杂,可能更容易将所有数据直接包含在js文件中。
答案 0 :(得分:2)
正如我在评论中提到的,尝试对值进行编码可能不值得。以下是我脑子里关于存储双打所需数据量的一些值(从评论中更新)。
假设有1,000,000个值:
注意:在最坏的情况下,double可以占用21个字节(假设精度为15位):1.23456789101112e-131
正如您所看到的,您仍然无法将其降低到使用带编码的普通文字值的1/2以下,如果您计划进行随机访问解码,它将变得复杂得多。最好坚持文字。使用您提到的外部文件可能会带来一些好处,但这取决于需要多少工作量。
关于如何使用文字进行优化的一些想法:
0123456789.e-,
)指定任意数量的双精度数,因此从理论上讲,您可以将这样的字符串压缩到其大小的一半。我不知道实际的现代压缩程序有多好。