JavaScript中解析文件中大量数据的最有效方法是什么?
目前我使用JSON解析来序列化未压缩的250MB文件,这非常慢.是否有一种简单而快速的方法可以从文件中读取JavaScript中的大量数据而无需遍历每个字符?存储在文件中的数据只是几个浮点数组?
更新: 该文件包含一个3d网格,6个缓冲区(vert,uv等).缓冲区也需要表示为类型化数组.流不是一个选项,因为在图形引擎可以继续之前必须完全加载文件.也许更好的问题是如何以最有效的方式将巨大的类型数组从文件传输到javascript.
我目前正忙于webgl中的延迟着色,我需要将3个整数值(在[0..256] = 256 ^ 3范围内)解码为单个32位浮点数并稍后对其进行编码.因为这是针对WebGL的,所以必须在没有按位操作的情况下完成.精确度对我来说并不重要(但我认为可以实现).
这是我所拥有的,但我认为这是错误的,因为我存储编码值的纹理的精度.
float packColor(vec3 color) { return (color.r + (color.g*256.) + (color.b*256.*256.)) / (256.*256.*256.); }
vec3 decodeColor(float f) {
float b = floor(f * 256.0);
float g = floor(f * 65536.0) - (b*256.);
float r = (floor(f * 16777216.0) - (b*65536.)) - (g*256.);
return vec3(r, g, b)/ 256.0;//vec3(r, g, b) / 256.0; }
Run Code Online (Sandbox Code Playgroud)
谢谢..