节点的 readFile() 是否使用分配了所有文件大小的单个缓冲区?



我对Node和文件系统流问题还很陌生。我现在想知道,如果readFile函数可以读取文件统计数据,获取大小并创建一个具有所有分配文件大小的缓冲区。或者换句话说:我知道它加载了整个文件,好吧。但它是通过在内部将文件拆分为更多的缓冲区来实现的,还是只使用一个大缓冲区?根据使用的方法,它具有不同的内存使用/泄漏含义。

在第9.3章找到答案:

http://book.mixu.net/node/ch9.html

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

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

因此,如果你使用readFile(),你的应用程序将需要同时容纳所有文件大小的内存。

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

相关内容

  • 没有找到相关文章

最新更新