当前位置: 代码迷 >> VC/MFC >> 这样的硬盘I/O是否正常
  详细解决方案

这样的硬盘I/O是否正常

热度:136   发布时间:2016-05-02 03:26:52.0
这样的硬盘I/O是不是正常
笔记本硬盘(5400转)上256个文件,每个大约271M,共66.1G

所在分区已经整理过了,完全没有碎片.

每个操作是这样的:
1.fopen
2.第一次fseek
3.fread 4个字节
4.第二次fseek
5.fread 91个字节
6.fclose

进行10000次操作,大约是201-204秒
也就是1秒只能进行49-50次这样的操作

经过测试,其中
10000次fopen/fclose只占了2秒左右的时间。

那瓶颈是在2-5步.(其中的10000次操作,fseek的位置,可以认为是随机的,也就是前后两次的操作,缓存一定不起作用)

两个问题:
1.这个时间消耗是不是正常?如果不正常,可能出现的问题在哪里?
2.是否有办法改进?比如把每个文件分成4个或16个小文件,fseek是不是会快一点?(小文件,fseek我感觉道理上会快一点,但打开文件那一步,相反可能会慢一点。因为硬盘上文件多了,操作系统定位文件的开头也需要时间查找)
------解决思路----------------------
随机读写 可能寻道时间占了很多分量 5400转的一般10~20ms是正常的
用专业的硬盘测试软件 可以测出这一参数
不知道你是什么需求 如果写不是很频繁的话 可以考虑固态盘
  相关解决方案