日期:2014-05-17  浏览次数:20909 次

【求教】关于win7的进程调度策略和磁盘读取策略
因工作需要,普通HHD硬盘读取速度太慢,无法满足需求,所以添加了SSD硬盘来优化读取效率。
在这之中发现了一个有趣的事情。

不管是HHD还是SSD,在读取我们需要的文件时(指定一次读取数量为8K),在读取数据时真正产生I/O的时间都以16MS居多。

这里解释下真正产生I/O是因为windows自带的系统缓存,每次会从指定数据向后顺序读取更多的数据出来,如果下次读取的数据在缓存中,则能在几乎不耗时的情况下拿到数据,即虽然申请访问磁盘,但是从内存中读数据,不算真正的I/O。

SSD下98%的I/O耗时为15~16ms
HHD下60%的I/O耗时为15~16ms

所以想问各位高手,这个15~16ms是产生子win7的进程调度策略还是磁盘读取策略?

或者说,这15~16ms是因为win7进程时间片为16ms,还是每次产生真正I/O,系统默认去读16ms,期间能读多少数据就读多少数据。还是两者都有?
------最佳解决方案--------------------
SSD下98%的I/O耗时为15~16ms
HHD下60%的I/O耗时为15~16ms
楼主你这个数据哪来的?可靠么?

我还是觉得2者都有,等等高手来详解。
------其他解决方案--------------------
windows的时间片是20ms 
进程间切换可能会消耗5ms左右
所以剩余的时间可能全部用于执行一次磁盘读取:
SSD下98%的I/O耗时为15~16ms
HHD下60%的I/O耗时为15~16ms
------其他解决方案--------------------
同等高手
------其他解决方案--------------------
与一般用户没有关系。
------其他解决方案--------------------
回1楼,确实是统计不准的问题,window自带的毫秒级时间统计函数不能精确16ms以下统计,所以改用了QueryPerformanceFrequency()和QueryPerformanceCounter()的组合函数,发现就没有这个问题了。所以应该完全不是这个调度策略了……