【发布时间】:2016-03-23 10:11:00
【问题描述】:
听说汇编语言读取文件有两种方式:一种是需要CPU在一个周期内重复查询磁盘读取完成状态;另一种方式是在磁盘读取完成时使用中断回调,并且在读取过程中不需要CPU。
我想知道的是:如果我使用 WinAPI readFile 从文件中读取大量数据(例如千兆字节),是否会占用大量 CPU 时间进行磁盘状态查询?
【问题讨论】:
-
Windows 绝对支持异步 I/O 模型,在等待主机控制器回复时不使用 CPU。如果您看到任何不同的东西,那一定是您系统的特定驱动程序非常糟糕。
-
除非文件被压缩,否则解压会占用CPU时间。
-
“需要 CPU 反复查询磁盘读取完成状态” - 这听起来像是由不熟悉异步 I/O 编程的人制作的实现。也许你听错人了。