.NET 4.0内存映射文件性能

时间:2010-02-25 09:54:39

标签: c# performance .net-4.0 binaryfiles memory-mapped-files

我想知道是否有人尝试过新的.NET 4.0内存映射文件功能? 我知道它们和OS一样古老,但.NET中的原生处理是新的。

有没有人能够测试这个并说一些关于性能的内容? 我对二进制文件的随机部分,写入速度等的访问时间非常感兴趣。与原生WinAPI MMF的性能比较也不错。

谢谢!

3 个答案:

答案 0 :(得分:4)

.NET 4.0中的内存映射文件(在新的System.IO.MemoryMappedFiles命名空间中)只需将Win32 API包装为内存映射文件。

这意味着它们尽可能快。这与用于将.NET程序集加载到内存中的机制相同。

就实际时序数而言,这将取决于32位与64位,您拥有多少内存,文件大小,访问模式以及在很大程度上物理磁盘硬件的类型。

参考:Memory-Mapped Files

答案 1 :(得分:1)

在下面的问题中,我对MemoryMapped Files与标准IO进行了性能测试:

Disadvantages of using memory mapped files

我无法为我的目的找到任何大的缺点,内存映射文件的性能大约快4倍,在这个问题中你可以找到一些关于这些文件的工作方式和考虑因素的有趣提示。

答案 2 :(得分:0)

在我的测试中,.NET 4.5 MMF的性能约为原生WinAPI调用性能的40%,即慢两倍以上。