我正在寻找向网络服务读取数据的最快方式,数据不会经常更新,应该保持安全。
让服务器读取数据的最快方法是什么(将其全部加载到内存中除外)?
我正在使用Node JS
本地文件? readFileSync?
答案 0 :(得分:0)
fs.readFileSync()
将所有数据加载到内存中,因此应该用于非常大的文件。它也是阻塞所以它只应该用在事件循环的第一个刻度上。这意味着当您的服务在您使用require
和其他阻塞调用的地方启动时可以使用它,但从不在任何事件处理程序,路由控制器等中使用它。如果您想要一次读取文件,则可以使用它用它。该函数有一个名为fs.readFile()
的非阻塞版本,但它也将整个文件读入内存,因此当它可以在事件处理程序中使用时,它仍然不应该用于大文件。 / p>
加载文件并提供文件的最快方法是使用fs.createReadStream()
并将其作为流传输。如果您正在使用Express,Hapi等框架,那么可能会有便利功能为您执行此操作,例如Express中的res.sendFile()
。
有关详细信息,请参阅: