nodejs 如何解压10G左右的压缩包?
发布于 5 年前 作者 Flywor 5547 次浏览 来自 问答

已知node虚拟机内存缓存区大小为1.5G左右,直接使用zlib解压会造成程序崩溃

有没有哪个库是边读边解压的?

或者,能不能将压缩包拆成若干个小的压缩包再分别解压后合并?

6 回复

你不是用 stream 的方式?

@atian25 不是哦,请教一下用stream的方式应该写

其实如果非 win 场景下的话,直接 fork 个 tar 命令

fork tar命令,由于解压的文件比较大注意要关闭tar命令的-v参数,标准输出将默认分配的缓冲写满后会阻塞子进程,也可以调用fork的时候使用ignore参数将stdio忽略掉。也可以调节maxBuffer参数大小,让stdio有足够的缓冲空间,但在生产环境缓冲比较宝贵。

省事儿,可以child_process.spawn调用外部二进制工具。例如:『unzip』…

回到顶部