Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。

4年前关闭。



Improve this question




与使用CreateFile ReadFile组合进行相同操作时,使用内存映射文件读取(常规大小的文件)有什么缺点(如果有)?

最佳答案

使用ReadFile/WriteFile,您可以确定性地处理错误。使用内存映射文件时,引发异常将返回错误。

另外,如果内存映射文件必须命中磁盘(或更糟的是网络),则您的内存读取可能需要几秒钟(甚至几分钟)才能完成。根据您的应用程序,这可能会导致意外的停顿。

如果使用ReadFile/WriteFile,则可以使用API​​的异步变体来控制此行为。

如果使用ReadFile,则还具有更高的确定性性能,尤其是在您的I/O模式可预测的情况下-内存映射的I/O通常是随机的,而ReadFile几乎总是串行的(因为ReadFile在当前文件位置读取并推进当前文件)位置)。

关于windows - 文件与CreateFile/ReadFile的内存映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/641614/

10-13 00:05