有效地串行化(并从nodejs读取)int数组
efficiently serialise (and read) int array from nodejs
我正在考虑在nodejs中构建一个应用程序,该应用程序需要流式传输包含整数数组的大(>GB)文件。至关重要的是,数组需要以最佳方式串行化,因此不是基于ascii的,理想情况下使用8位表示较小的整数(这将是绝大多数数据),但仍然能够表示较大的数字。
这个问题可能不仅仅是关于nodejs,但在nodejs中如何做到这一点呢?是否有现成的解决方案可以从磁盘上使用自定义字节编码流式传输文件?或者更好,整数数组?
理想情况下,流的每个部分的解码都应该是磁盘绑定的,而不是cpu绑定的,即使是ssd。
我觉得没有先深入文档很傻(这个项目的目的毕竟是为了学习nodejs)。
文件系统模块的默认行为与作业相符。虽然我还没有实现可变长度量解码部分,也没有测试它的速度。
var fs, rs, bufferSize, buffer, i;
fs = require('fs');
rs = fs.createReadStream('/Path/to/file');
bufferSize = 10;
while(true){
buffer = rs.read(bufferSize);
if (!buffer) break;
for(i=0; i<buffer.length; i++;){
byte = buffer[i];
// interpret byte given as integer according to 'variable-length quantity' encoding
}
}
http://en.wikipedia.org/wiki/Variable-length_quantity
编辑:我为这个功能齐全的剧本做了一个要点。
相关文章:
- 从桌面读取python文件时高亮显示代码
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 按从高到低对多个int变量进行排序
- AngularJS指令出错-无法读取属性'编译'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 如何在Javascript中读取unsigned int
- 如何读取表单中的输入数据
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- angularjs无法读取未定义的属性then
- 有效地串行化(并从nodejs读取)int数组