gpt4 book ai didi

javascript - 从nodejs有效地序列化(和读取)int数组

转载 作者:搜寻专家 更新时间:2023-10-31 22:52:48 28 4
gpt4 key购买 nike

我正在考虑在 nodejs 中构建一个应用程序,它需要流式传输包含整数数组的大型 (>GB) 文件。至关重要的是,数组需要以最佳方式序列化,而不是基于 ascii,理想情况下使用 8 位来表示较小的整数(这将是数据的绝大部分),但仍然能够表示较大的数字。

这个问题可能不仅仅是关于 nodejs,但是如何在 nodejs 中解决这个问题?对于来自磁盘的自定义字节编码的流式文件,是否有现成的解决方案?或者更好,整数数组?

理想情况下,流的每个部分的解码应该是磁盘绑定(bind)而不是 cpu 绑定(bind),即使使用 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

编辑:我做了 a gist功能齐全的脚本。

关于javascript - 从nodejs有效地序列化(和读取)int数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441773/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com