2010-09-01 190 views
3

我将编写一个基准测试工具来测试磁盘系统的IOPS和带宽混合,因此我将转而使用文件支持的IO内存映射。由于该工具将需要在POSIX和WinNT平台上运行,因此我不能只使用普通的旧的mmap。另外从我的理解你必须疯狂的Linux内核,整个文件将按顺序访问?这使我能够提升内存映射。在Windows,Linux和Max OS X上使用类似的质量驱动程序的Boost内存映射可能会给类似的硬件带来类似的性能吗?是否有人在系统中测试了Boost mmap?Boost mmap性能vs本地内存映射

+3

增强内存映射甚至比本地内存映射提示和一切都快! Boost很棒。每个人都应该使用Boost! - 签署了一个随机增强助推器。 – Omnifarious 2010-09-01 01:16:39

回答

1

为什么你不基准,找到了吗?我会怀疑不会有性能差异,因为Boost仅仅提供了一个平台不可知的封装工具。另外,Windows NT平台提供了一种内存映射工具 - 它不像内存映射是Linux特有的功能。对于Windows,您需要CreateFile,CreateFileMappingMapViewOfFile。 Windows库的不同之处在于映射机器的创建与创建映射视图是分开的。否则,功能是等同的。呵呵,就像在POSIX上一样,你需要清理一下,在这种情况下用UnmapViewOfFile就可以查看文件映射和文件句柄了,CloseHandle

+1

在提交大量工作来实现这两种解决方案之前,值得问一下,以便您可以进行基准测试。一个简短的回答就是提升只是一个很小的包装器 – 2010-09-01 01:51:29

+0

要在POSIX中创建同一个文件的多个地址映射,您只需使用相同的文件描述符多次调用mmap()。 – caf 2010-09-01 01:52:57

+0

@Martin:一般来说是的,但在这种情况下,我们正在讨论可能的4个函数调用,而不管它需要什么来获得boost的设置工作。这不像实施这两种解决方案是一件非常复杂的事情。 @caf:我没有很好地解释自己......我已经重写了这一部分。 – 2010-09-01 02:09:29