使用内存映射
文件读取(常规大小的
文件)使用CreateFile ReadFile组合执行相同操作有什么缺点(如果有)?
使用ReadFile / WriteFile你有确定性的
错误处理语义.当使用内存映射
文件时,会通过抛出异常返回
错误.
另外,如果内存映射文件必须击中磁盘(或更糟糕的是,网络),您的内存读取可能需要几秒钟(甚至几分钟)才能完成.根据您的应用,这可能会导致意外的失速.
如果您使用ReadFile / WriteFile,您可以使用API的异步变体来允许您控制此行为.
如果您使用ReadFile,尤其是在I / O模式是可预测的情况下,您还将具有更多的确定性性能 – 内存映射的I / O通常是随机的,而ReadFile几乎总是串行的(因为ReadFile读取当前文件位置并推进当前文件位置).
原文链接:https://www.f2er.com/windows/371399.html