node.js的readFileSync是否缓存读取的文件?

eug*_*ene 4 caching file node.js

fs.readFileSyncnode.js 是否缓存已读取的文件?

我不认为这样做是因为doc没这么说,但是我的代码却是这样。

  • 编辑

代码的相关部分

     // after mainPath file is altered, it's not reflected until I restart node.js
     var scriptString =  fs.readFileSync(mainPath);
     var app = vm.createScript(scriptString, mainPath); 

     // Run the app

     app.runInContext(context);
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

在给定的读取操作期间,将对读取进行缓冲。例如,当您要求读取一个字节时,它可能会将比单个字节更多的字节读入缓冲区,然后将该单个字节返回给您。但是除此之外,从文件的一次读取到另一次的读取没有内置在node.js中的缓存。而且,如果您要readFileSync()一次读取整个文件,则此缓冲不会影响您。

操作系统本身将在node.js下进行缓存,但这通常是直写式缓存,旨在保存磁盘读取,但永远不会过时。