关于windows中文件读取缓存的问题,高手进
答案:2 悬赏:40 手机版
解决时间 2021-12-21 19:06
- 提问者网友:贪了杯
- 2021-12-20 20:58
现在我在编写一个测试硬盘读取速度的软件,通过从硬盘读取文件来测速,但是现在每次读取后,会把文件内容读取进了windows缓存,从而在测试时会速度超级高,现在请问各位大大能不能在读取这个文件时跳过缓存机制,从而获得准确的速度值呢,高分送给强人!!!!
最佳答案
- 五星知识达人网友:像个废品
- 2021-12-20 21:25
使用API直接读取磁盘的区块,而不是读取文件。测试磁盘速度的思路如下:
首先磁盘读取速度有两个考量标准:瞬间速度(读取某一偏移值开始的一段数据俄速度)和平均速度(读取全盘的速度)。前者是可以采集的,后者是通过前者计算出来的。所以,应该依次读取全盘,然后计算平均值,最高值,最低值——甚至可以画出读取速度的曲线。
设计上讲,需要设定采样频率(全盘采样几次,比如N次),每次采样的数据量(每次采样时从起始点读取的内容,比如A Byte)。将全盘从0开始分成N块,每一块的起始点间隔为全盘容量/N。然后依次从每一个块的起始点读取数据量A的数据并记录时间,计算速度。这样我们就有了一份偏移值-读取速度的曲线,通过这条曲线计算最高值,最低值,平均速度等信息即可。
磁盘读取可以通过调用Win32API来实现。为了保证精度,建议N的数值不要太小,A不要太大。
首先磁盘读取速度有两个考量标准:瞬间速度(读取某一偏移值开始的一段数据俄速度)和平均速度(读取全盘的速度)。前者是可以采集的,后者是通过前者计算出来的。所以,应该依次读取全盘,然后计算平均值,最高值,最低值——甚至可以画出读取速度的曲线。
设计上讲,需要设定采样频率(全盘采样几次,比如N次),每次采样的数据量(每次采样时从起始点读取的内容,比如A Byte)。将全盘从0开始分成N块,每一块的起始点间隔为全盘容量/N。然后依次从每一个块的起始点读取数据量A的数据并记录时间,计算速度。这样我们就有了一份偏移值-读取速度的曲线,通过这条曲线计算最高值,最低值,平均速度等信息即可。
磁盘读取可以通过调用Win32API来实现。为了保证精度,建议N的数值不要太小,A不要太大。
全部回答
- 1楼网友:長槍戰八方
- 2021-12-20 22:34
我是来看评论的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯