Nat*_*Nat 5 javascript arrays serialization node.js node.js-stream
我正在考虑在nodejs中构建一个应用程序,它需要流式传输包含整数数组的大(> GB)文件.最重要的是,阵列需要以最佳方式进行序列化,因此不是基于ascii,理想情况下使用8位用于较小的整数(这将是绝大多数数据),但仍然能够代表更大的数字.
这个问题可能不仅仅是关于nodejs,而是如何在nodejs中解决这个问题?是否有现成的流式文件解决方案,其中包含来自磁盘的自定义字节编码?或者更好,整数数组?
理想情况下,即使使用ssd,流的每个部分的解码也应该是磁盘绑定而不是cpu绑定.
我觉得自己很傻,没有先深入研究文档(这个项目的目的毕竟是让我学习 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
}
}
Run Code Online (Sandbox Code Playgroud)
http://en.wikipedia.org/wiki/Variable-length_quantity
编辑:我总结了功能齐全的脚本的要点。
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |