昨天,我問的問題在這裏:how do disable disk cache in c# invoke win32 CreateFile api with FILE_FLAG_NO_BUFFERING。如何提高閱讀了大量的小文件的讀寫速度或性能
在我的性能測試顯示(讀寫測試,1000個文件,總大小220M)時,FILE_FLAG_NO_BUFFERING
不能幫助我提高比.NET默認磁盤緩存性能和更低的,因爲我嘗試改變FILE_FLAG_NO_BUFFERING
到FILE_FLAG_SEQUENTIAL_SCAN
所能到達.net默認磁盤緩存並且速度更快。
之前,我嘗試使用MongoDB的GridFS的功能替換Windows文件系統,也不好(我不需要使用分佈式功能,只要適量)。
在我的產品中,服務器可以通過tcp/ip每秒獲得很多較小的文件(60-100k),然後將其保存到磁盤,第三個服務讀取這些文件一次(只讀一次和進程)。如果我使用異步I/O是否可以幫助我,是否可以獲得最佳速度和最佳低cpu週期?有人可以給我建議?或者我仍然可以使用FileStream類?
更新1
的內存映射文件是否能實現我的demand.that所有文件寫入到一個大文件或多個並從中讀取?
是否真的有必要將這些文件寫入磁盤,如果您只處理它們一次? – 2012-01-02 11:07:59
只要回答你的問題,並通過檢查旁邊的「右箭頭」來幫助你完成任務,回答這個問題:-) – 2012-01-02 12:01:14
@Pankaj Upadhyay,謝謝,我解決了它,我會注意到的。 – springchun 2012-01-02 12:14:38