不经意间发现遍历第一次遍历一个目录时的速度比第二次遍历慢好好多,最少10倍,Input DirName :f:\game
First Over   use time: 6
second Over   use time: 0
Input DirName :f:\game
First Over   use time: 0
second Over   use time: 0这个是为什么呢?用filemon观察发现第二次只访问了目录,文件列表保存在哪了?这是一个什么样的机制?

解决方案 »

  1.   

    猜想:要看所使用的操作系统,XP Vista下有目录索引服务,可能是这个服务保存了上次访问结果,加速了后面的访问 
      

  2.   

    windows下应该是要有临时文件来存放搜索结果的,以便节省后续时间哦!
      

  3.   

    windows下有缓冲,你如果换个目录比如说D:\game,扫描之后再来扫描f:\game就又恢复到第一次的速度
      

  4.   

    Cache我想肯定是有的,但我想知道的是它们的工作机制,比如Cache文件放在哪?里面的结构是怎么样的?谁来修改它们?什么时候修改?如何修改?
      

  5.   

    windows下有缓冲,你如果换个目录比如说D:\game,扫描之后再来扫描f:\game就又恢复到第一次的速度
      

  6.   

    应该是有保存上次目录的,像CPU不也有cache机制,,