读写大文件导致内存溢出(FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory)
发布于 5 年前 作者 liuff1988 6506 次浏览 最后一次编辑是 3 年前

菜鸟请教各位,下面的代码有问题吗?有没有另外一种可能,服务器网速慢,读写速度不一致导致内存溢出呢?

self._init(filePath, function() {
                var config = self.config;
                resp = self.resp;
                fReadStream = fs.createReadStream(filePath, {
                    encoding : 'binary',
                    bufferSize : 1024 * 1024,
                    start : config.startPos,
                    end : config.fileSize
                });
                fReadStream.on('data', function(chunk) {
                    resp.write(chunk, 'binary');
                });
                fReadStream.on('end', function() {
                    resp.end();
                });
            });

2 回复

流式处理一般不会导致内存溢出,就怕异步调用导致的循环嵌套太深会导致内存溢出,

请检查闭包。

回到顶部