我想读一些文本文件(大约300 kb的每个)。到现在为止我一直在使用FILESTREAM打开文件和读取它。 (制表符分隔)。不过,我听说在.NET 4.0中内存映射文件。难道让我读得更快?

是否有,做了简单的文件的读出和比较性能的任何示例代码?

有帮助吗?

解决方案

如果该文件在磁盘上只需要读入内存,然后使用内存映射文件都不会帮助,因为你仍然需要从磁盘中读取它们。

如果你正在做的是阅读文件,还有在内存映射他们没有任何意义。

内存映射是用于当你正在做深入细致的工作文件与文件(读,写,改变),并希望避免磁盘IO

其他提示

如果你的只是的读了一遍,然后内存映射文件是没有意义的;它仍然需要相同的时间量从磁盘装入的数据。内存映射文件练成当许多随机读取和/或写入操作必须在文件上,因为没有必要中断与寻道操作读或写操作完成。

使用的数据货币市场基金的您的量不给任何优势。然而,在一般情况下,如果一个人什么麻烦事进行测试时,他会发现,这复制使用货币市场基金大(巨大)的文件比调用的ReadFile / WriteFile的顺序更快。这是由Windows内部用于MMF管理和文件IO不同的机制造成的。

处理在存储器中总是比数据操作的方式从磁盘IO类似的东西更快。如果你的处理顺序地融入内存,您可以使用 File.ReadLines( )通过线来获得数据线以及快速处理它们没有硬的内存开销。这里例如:如何在C#中打开一个大的文本文件

检查这个答案太:何时使用内存映射文件

不推荐使用

内存映射文件读取的文本文件。要阅读您正在使用文件流做正确的文本文件。 MMP是最好的读取二进制数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top