vit*_*y-t 2 performance buffer node.js
当我以 64Kb 的片段读取一个 16MB 的文件并Buffer.concat在每个片段上执行时,后者被证明非常慢,需要整整 4 秒才能完成。
有没有更好的方法来连接 Node.js 中的缓冲区?
使用的 Node.js 版本:7.10.0,在 Windows 10 下(均为 64 位)。
这个问题是在研究以下问题时提出的:https : //github.com/brianc/node-postgres/issues/1286,它影响了大量受众。
PostgreSQL 驱动程序bytea以 64Kb 的块读取大列,然后将它们连接起来。我们发现调用Buffer.concat是此类示例中性能巨大损失的罪魁祸首。
而不是每次连接(每次都会创建一个新缓冲区),只需保留所有缓冲区的数组并在最后连接。
Buffer.concat()可以获取整个缓冲区列表。然后它在一个操作中完成。 https://nodejs.org/api/buffer.html#buffer_class_method_buffer_concat_list_totallength