2010-10-25 100 views
2

我想讀幾個文本文件(每個約300 kb)。到目前爲止,我一直在使用FileStream打開文件並閱讀它。 (TAB DELIMITED)。但是,我聽說.net 4.0中的內存映射文件。它會讓我的閱讀速度更快嗎?c#內存映射文件讀

是否有任何示例代碼可以讀取簡單文件並比較性能?

回答

6

如果文件在磁盤上,只需要讀入內存,那麼使用內存映射文件根本無濟於事,因爲您仍然需要從磁盤讀取它們。

如果你正在做的只是讀取這些文件,那麼在內存映射它們時沒有意義。

Memory mapped files適用於您在文件(讀取,寫入,更改)方面進行大量工作並希望避免磁盤IO的情況。

+4

而且當你根本無法將整個文件數據放入內存時。 – 2010-10-25 18:45:29

2

如果你是只是讀取一次,然後內存映射文件沒有意義;它仍然需要花費相同的時間從磁盤加載數據。內存映射文件在許多隨機讀取和/或寫入必須在文件上執行時較爲出色,因爲不需要通過查找操作來中斷讀取或寫入操作。

0

隨着數據量貨幣市場基金的不給任何優勢。但是,一般來說,如果有人不耐煩地進行測試,他會發現,使用MMF複製大型(巨大)文件比按順序調用ReadFile/WriteFile要快。這是由Windows內部在MMF管理和文件IO中使用的不同機制造成的。

0

不推薦使用內存映射文件來讀取文本文件。要閱讀文本文件,您正在使用Filestream。 MMP最好讀取二進制數據。