提高mmap性能与本机内存映射

时间:2010-09-01 00:58:40

标签: c++ linux memory boost io

我将编写一个基准测试工具,测试IOPS和磁盘系统带宽的混合,因此我将转向IO的文件支持内存映射。因为该工具需要在POSIX和WinNT平台上,我不能只使用普通的旧mmaps。另外根据我的理解,您必须对Linux内核进行认真处理,整个文件将按顺序访问?这让我想到了Boost内存映射。在Windows,Linux和Max OS X上,Boost内存映射是否可能会在具有类似质量驱动程序的类似硬件上提供类似的性能?是否有人对跨系统的Boost mmaps进行了基准测试?

1 个答案:

答案 0 :(得分:0)

为什么不基准并找到了?我怀疑没有性能差异,因为Boost只是提供了一个平台无关的包装工具。

此外,Windows NT平台提供了内存映射工具 - 它不像内存映射是Linux特有的功能。对于Windows,您需要CreateFileCreateFileMappingMapViewOfFile。 Windows库的不同之处在于映射机制的创建与创建映射视图是分开的。否则功能是等效的。哦,就像在POSIX上一样,你需要清理,在这种情况下,视图上有UnmapViewOfFile,文件映射和文件句柄上有CloseHandle