我对 Node 和文件系统流问题还很陌生。我现在想知道 readFile 函数是否可以读取文件统计信息,获取大小并创建一个分配了所有文件大小的缓冲区。或者换句话说:我知道它会加载整个文件,好吧。但是它是通过在内部将文件拆分为更多缓冲区来实现这一点还是仅使用一个大缓冲区?根据所使用的方法,它具有不同的内存使用/泄漏影响。
最佳答案
在第 9.3 章中找到答案:
http://book.mixu.net/node/ch9.html
正如预期的那样,readFile 使用了 1 个完整的缓冲区。从上面的链接来看,这是readFile的执行:
//全缓冲访问 [100 Mb 文件] -> 1. [分配 100 Mb 缓冲区] -> 2. [读取并返回100 Mb缓冲区]
因此,如果您使用 readFile(),您的应用程序将立即需要所有文件大小的内存。
要将内存分成 block ,请使用 read() 或 createReadStream()
关于node.js - Node 的 readFile() 是否使用分配了所有文件大小的单个缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26136680/