如何在Javascript

时间:2018-06-03 06:12:14

标签: javascript arrays performance binary compression

Javascript支持使用typed array接口读取和写入二进制数组。

本质上,它创建了二进制数据的内存缓冲区,然后通过“视图”读取该二进制数据。这个视图告诉浏览器一次应该读取多少位数据并从中生成一个数组..

例如,位0000000100000001将通过不同的视图看起来像这样:

// 8 bit (char) array
charArray[0] = 1;
charArray[1] = 1;

// 16 bit (short int) array
intArray[0] = 257;

对于我正在处理的项目,我需要一次只存储1位数据,而文件大小是一个问题。 Javascript中最小的内置数组大小是一个char数组,使用char数组只保存1或0将浪费空间,因为它必须存储所有前导0。

我的问题:在Javascript中一次读取2位二进制数据的性能最快的方法是什么?

我知道javascript支持bitwise operators,但我找不到任何有关其效果的信息。我能想到的唯一另一件事就是使用一个char数组,并编写自定义逻辑,减去正确的数字,一次只能读取一位。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

据我所知,几乎所有语言的按位操作都非常快。

如果您一次读取并存储8位(通常是最小尺寸的语言),您应该可以毫无困难地满足您的时间要求。

如果将其实现为右移和按位(或左移和右移),则以8位值提取i th 位的速度很快。