• 请不要在回答技术问题时复制粘贴 AI 生成的内容
soratadori
V2EX  ›  程序员

请教一个硬盘读写的缓存机制

  •  
  •   soratadori · Sep 30, 2016 · 2625 views
    This topic created in 3522 days ago, the information mentioned may be changed or developed.

    机械硬盘 / USB2.0

    读取一个 800M 的文件,第一次大约需要 25s 左右才能读完,第二次再读几乎瞬间就能读完了,而且换不同的软件来读都能享受到这种“便利”。任务管理器显示内存并没有显示被占用。

    请问这种是什么缓存机制?有什么办法能知道这个缓存具体多大吗?是否可以人为的清楚这种缓存?

    11 replies    2016-10-02 04:48:27 +08:00
    htfy96
        1
    htfy96  
       Sep 30, 2016 via Android
    linux 下可以看到 cache 内存, Windows 我猜应该是实际利用了但是不会计算在内。
    楼主为什么要清除这个缓存?
    soratadori
        2
    soratadori  
    OP
       Sep 30, 2016
    @htfy96 因为整个过程在一定几率下会出现一些计算错误,因为有这个缓存的机制存在,事后非常难发现是否出现错误。基本得等这个缓存被覆盖掉才能发现是否出错了
    soratadori
        3
    soratadori  
    OP
       Sep 30, 2016
    复现这个“出错”很难,就算复现了也并不好解决,所以希望先找出是否有错误,有错误重新计算一遍就好。
    soratadori
        5
    soratadori  
    OP
       Sep 30, 2016
    @htfy96 thanks 好像挺有用的,待我研究下。
    soratadori
        6
    soratadori  
    OP
       Oct 1, 2016
    @htfy96

    →_→ 请问下你知道啥是 OVERLAPPED 不,这玩意咋弄出来。 我不太会这些。

    File access sizes, including the optional file offset in the OVERLAPPED structure, if specified, must be for a number of bytes that is an integer multiple of the volume sector size.

    似乎我要读取的话,就必须传入一个这样结构的数据进去,这玩意到怎么弄出来。
    htfy96
        7
    htfy96  
       Oct 1, 2016 via Android
    @soratadori 这个我记得是异步读写的时候才要传…同步的时候不用传(?)…你可以查查 CreateFile 文档
    soratadori
        8
    soratadori  
    OP
       Oct 1, 2016
    @htfy96
    成功了,原来是我眼神太差+英语不够灵光走到歪路上了。
    Osk
        9
    Osk  
       Oct 1, 2016
    system internal suits 里的 RAMMap 和 Cacheset 不知道是不是你需要的
    soratadori
        10
    soratadori  
    OP
       Oct 1, 2016
    @Osk
    感谢, RAMMap 很有用
    LGA1150
        11
    LGA1150  
       Oct 2, 2016 via Android
    如果是 Win7 系统,打开“资源监视器”,你就能看到有一项“已缓存”的占用
    Win8/10 在任务管理器中就能看到这个“已缓存”
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2867 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:37 · PVG 22:37 · LAX 07:37 · JFK 10:37
    ♥ Do have faith in what you're doing.