节点的readFile()是否使用单个Buffer分配了所有文件大小?
问题描述:
我对Node和文件系统流的关注很新。我想现在如果readFile函数可能读取文件统计信息,请获取大小并创建一个分配了所有文件大小的单个缓冲区。换句话说:我知道它会加载整个文件,好的。但是,它是通过将文件内部分割到更多缓冲区还是仅使用一个较大的缓冲区来实现的?根据使用的方法,它具有不同的内存使用/泄漏含义。节点的readFile()是否使用单个Buffer分配了所有文件大小?
答
发现这里的章节9.3答案:
http://book.mixu.net/node/ch9.html
正如预期的那样,READFILE使用1全缓冲。从上面的链接,这是READFILE的执行:
//全缓冲存取 [100 MB的文件] - > 1. [100分配缓冲器MB] - > 2读取并返回100 Mb的缓冲]
所以,如果您使用readFile(),您的应用程序将一次只需要所有文件大小的内存。 ()或createReadStream()
要将该内存分块