笔记本硬盘(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是正常的
用专业的硬盘测试软件 可以测出这一参数
不知道你是什么需求 如果写不是很频繁的话 可以考虑固态盘