4 caching server-side node.js express
根据这个问题, express.static 每次都会从硬盘读取文件。我想将提供的文件缓存在内存中,因为它们不会改变,数量不多,而且我有足够的内存来这样做。
所以对于这样的代码:
// serve all static files from the /public folder
app.use(express.static(path.join(__dirname, 'public')))
// serve index.html for all routes
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'public/index.html'))
})
Run Code Online (Sandbox Code Playgroud)
如何确保 Express 将通过express.static 和 res.sendFile 提供的文件缓存在内存中?
这通常不值得麻烦,因为操作系统会为您处理这个问题。
所有现代操作系统都会使用未使用的 RAM 作为“缓冲区缓存”或“页面缓存”。最近使用的文件系统数据将存储在 RAM 中,因此一旦文件加载到内存中,任何后续读取都将从内存中进行,而不是实际从磁盘中读取。
依赖于此的优点是,当进程的内存消耗恰好增加时,操作系统会自动从缓冲区缓存中清除数据,从而不会冒这些进程内存不足的风险(就像您在实现时可能会遇到的那样)自己在用户空间中的东西)。
| 归档时间: |
|
| 查看次数: |
2968 次 |
| 最近记录: |