VC文件操作函数那种速度最快?

gary137 2005-03-29 02:17:56
1. 传统 stdio.h中 系列
fopen, fread/fwrite, fclose

2. Win32 API
OpenFile, ReadFile / WriteFile, CloseHandle

3. MFC CFile
CFile::Open, Read/Write, Close()

...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Featured 2005-03-29
  • 打赏
  • 举报
回复
gz,感谢牧羊人的仔细测试

另外,考虑把1、2、3的写入次序颠倒一下,观察是否存在硬盘的缓冲区影响
4inSky 2005-03-29
  • 打赏
  • 举报
回复
对于执行的代码,因为都是底层的api,因此在速度上不应该有太大的差别.

唯一不同的可能会由于操作系统的不同而对速度有影响.
sjcode 2005-03-29
  • 打赏
  • 举报
回复
2
erben 2005-03-29
  • 打赏
  • 举报
回复
呵呵,编程序也“发烧”了
gary137 2005-03-29
  • 打赏
  • 举报
回复
测试补充说明: 1,2,3 个组的测试数据文件不同(文件名), 虽然他们是由同一个文件复制成的.这样可以避免系统文件缓冲对后面测试两组数据的影响.
gary137 2005-03-29
  • 打赏
  • 举报
回复
下面是我的一组测试数据:

C:\XXX\bin>test
1: 1912 ms
2: 1853 ms
3: 4647 ms

C:\XXX\bin>test
1: 4436 ms
2: 3575 ms
3: 3165 ms

C:\XXX\bin>test
1: 3876 ms
2: 4166 ms
3: 3205 ms

C:\XXX\bin>test
1: 3425 ms
2: 5268 ms
3: 2113 ms

C:\XXX\bin>test
1: 4046 ms
2: 3295 ms
3: 3064 ms

C:\XXX\bin>test
1: 4546 ms
2: 4016 ms
3: 2153 ms

谢谢 coralbird(珊瑚鸟) 的提示.

我是对一个大文件 25 MB 进行测试, 对不同位置读一段数据(每次测试读的块大小不一样 ), 各 100 次.

怎么显示 CFile 速度更快些 ?
其实 CFile 用的就是 Win32 API.
dirdirdir3 2005-03-29
  • 打赏
  • 举报
回复
CreateFile,readfile/writefile,快些吧
晨星 2005-03-29
  • 打赏
  • 举报
回复
底层应该差不多。可以自己测试一下。
coralbird 2005-03-29
  • 打赏
  • 举报
回复
MSDN:
OpenFile :This function is provided only for compatibility with 16-bit versions of Windows. New applications should use the CreateFile function.

OpenFile, ReadFile / WriteFile, CloseHandle 只是为了兼容16位的操作系统,新版本程序应该使用CreateFile函数,而Cfile内部是调用CreateFile函数的,因此这两者应该没区别

  • 打赏
  • 举报
回复
gz
vcmute 2005-03-29
  • 打赏
  • 举报
回复
2

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧