Windows文件高速緩存,如下所述:例如File.ReadAllText()利用Windows文件緩存?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364218(v=vs.85).aspx
默認情況下,Windows緩存是從磁盤讀取和 寫入到磁盤上的文件數據。這意味着讀取操作從系統內存中的一個區域讀取文件數據 ,稱爲系統文件高速緩存,而不是從物理磁盤中讀取 。
我有一個C#應用程序,它以非常頻繁,快速的方式從磁盤讀取文件。我應該擔心編寫自己的「文件緩存」機制,還是Windows會爲我處理?當使用Process Explorer觀察我的應用程序時,即使我一遍又一遍地讀取相同的靜態文件,但在操作過程中仍然會注意到很多磁盤I/O。難道Windows緩存管理器只是告訴操作系統磁盤IO正在發生,實際上是從內存中的緩存中讀取文件?
你不需要擔心。這就是爲什麼1000個智能開發人員編寫Windows操作系統的原因,所以您只需執行'File.ReadAllText()'。如果你想訪問文件,例如一個沒有被修改的模板,是的,你可以將它存儲在內存中並讀取內存。但爲此,您需要注意緩存。對於框架<= 3.5使用Enterprise Library 5緩存塊。對於4.0 - system.runtime.caching或appFabric等等,等等 –