小弟我现在写一个非专业的硬盘读写速度测试程序.有关问题是。>

我现在写一个非专业的硬盘读写速度测试程序...问题是。。。->
我现在写一个非专业的硬盘读写速度测试程序,我用读写指定大小文件记时间计算,
现在是和其它类似软件相比,读取速度太快,一般好像正常读取速度只比写入速度稍快些,但是我的写入速度25MB/S的话,读取速度可能是80MB/S甚至几百MB/S。
我用的MFC的CFile类,文件读写的那些方法效率都有区别吗?
大家有做过相关方面的经验吗?给点建议。

------解决方案--------------------
文件读写会使用缓存,结果相当不准,最好用磁盘读写的方法来测速
------解决方案--------------------
Windows下有很大的磁盘缓冲区。当你从磁盘读数据时,系统实际读取的数据可能比较指定的数据长度要大很多,当你下次读取时,如果缓冲区中存在你要读的数据,则直接复制过去,而不去读盘;当你向磁盘写入数据时,系统先把你要写入的数据复制到缓冲区,然后就告诉你写入成功,系统后台再慢慢向磁盘中写。如果你写程序时没有考虑这些,那么测到的结果可能无法理解。另外,磁盘读写分为同步操作和异步操作;磁盘读写过程中大部分时间是在等待磁盘响应;磁盘(驱动器)运转过程中移动磁头(寻道)时间是最长的;连续读写数据速度较快;磁盘内部也有缓存;遭遇坏道时磁盘会自动重试,这些方面在测试速度时都需要考虑,根据你测试的目标而定。

CreateFile时加上FILE_FLAG_NO_BUFFERING标志可以不使用系统缓冲区。
------解决方案--------------------
使用 SCSI 命令直接操作比较准确,也比较危险。