如何在javascript文件中以文本字符串形式存储大的双精度序列
在js文件中直接存储约100个双倍序列的最佳方法是什么?每个序列的长度约为10000倍或更多 要求如何在javascript文件中以文本字符串形式存储大的双精度序列,javascript,base64,decode,Javascript,Base64,Decode,在js文件中直接存储约100个双倍序列的最佳方法是什么?每个序列的长度约为10000倍或更多 要求 javascript文件必须尽可能快地执行 对我来说,按需迭代序列就足够了(我不需要在js执行时解码所有数字,它们将在事件发生时解码) 它不应该占用太多空间 最简单的选择可能是使用CSV格式的字符串,但是double并不是以最有效的方式存储的,对吗 另一种选择可能是将数字存储在Base64字节数组中,但我不知道如何将Base64字符串读入double 编辑: 我想使用double来转换Adob
- javascript文件必须尽可能快地执行
- 对我来说,按需迭代序列就足够了(我不需要在js执行时解码所有数字,它们将在事件发生时解码)
- 它不应该占用太多空间
我想使用double来转换Adobe3D注释中3d节点的Matrix4x4。Adobe允许导入外部文件,但它非常复杂,直接将所有数据包含在js文件中可能更简单。正如我在评论中提到的,尝试对值进行编码可能不值得。以下是我头脑中关于存储双倍数据所需数据量的一些值(根据注释更新) 假设1000000个值:
- 使用直接编码(在JS文件中无法正常工作):8b=8MB
- 使用base64:10.7B=10.7MB
- 文字(最佳情况):1 B+分隔符=2 MB
- 文字(最坏情况):21 B+分隔符=22 MB
- 文字量(假设平均分布值的平均大小写):19 B+分隔符=20MB
- 根据所需的精度,您可以近似值,并将值限制为(例如)5位精度。这将难以置信地缩短文件
- 你可以压缩文件。我认为您可以使用14个字符指定任意数量的双精度字符(
),因此理论上,您可以将这样的字符串压缩到其大小的一半。不过,我不知道现代实用压缩例程有多好0123456789.e-,