使用内存映射文件读取(常规大小的文件)而使用CreateFile ReadFile组合执行相同操作有什么缺点(如果有的话)?
使用ReadFile/WriteFile,您可以获得确定性的错误处理语义.使用内存映射文件时,抛出异常会返回错误.
此外,如果内存映射文件必须击中磁盘(甚至更糟的是网络),则内存读取可能需要几秒钟(甚至几分钟)才能完成.根据您的应用程序,这可能会导致意外停顿.
如果使用ReadFile/WriteFile,则可以使用API的异步变体来控制此行为.
如果使用ReadFile,您还可以获得更多确定性性能,特别是如果您的I/O模式是可预测的 - 内存映射I/O通常是随机的,而ReadFile几乎总是串行的(因为ReadFile读取当前文件位置并提前当前文件)位置).