Node.js 节点';s readFile()是否在分配所有文件大小的情况下使用单个缓冲区?

Node.js 节点';s readFile()是否在分配所有文件大小的情况下使用单个缓冲区?,node.js,file-io,stream,filesystems,buffer,Node.js,File Io,Stream,Filesystems,Buffer,对于节点和文件系统流的关注点,我还是个新手。我现在想知道readFile函数是否可以读取文件统计信息,获取大小并创建一个包含所有分配文件大小的缓冲区。或者换句话说:我知道它会加载整个文件,好吗。但它是通过在内部将文件拆分为更多缓冲区来实现的,还是只使用一个大缓冲区?根据使用的方法,它具有不同的内存使用/泄漏含义。在第9.3章中找到了答案: 正如预期的那样,readFile使用1个完整的缓冲区。从上面的链接,这是readFile的执行: //完全缓冲访问 [100 Mb文件] -> 1. [分配

对于节点和文件系统流的关注点,我还是个新手。我现在想知道readFile函数是否可以读取文件统计信息,获取大小并创建一个包含所有分配文件大小的缓冲区。或者换句话说:我知道它会加载整个文件,好吗。但它是通过在内部将文件拆分为更多缓冲区来实现的,还是只使用一个大缓冲区?根据使用的方法,它具有不同的内存使用/泄漏含义。

在第9.3章中找到了答案:

正如预期的那样,readFile使用1个完整的缓冲区。从上面的链接,这是readFile的执行:

//完全缓冲访问 [100 Mb文件] -> 1. [分配100 Mb缓冲区] -> 2. [读取并返回100 Mb缓冲区]

因此,如果您使用readFile(),您的应用程序将需要一次存储所有文件大小的内存

要将内存分成块,请使用read()或createReadStream()