代码之家  ›  专栏  ›  技术社区  ›  HX_unbanned

Delphi和HDD I/O报价、资源预缓存、读/写/寻道参数限制

  •  2
  • HX_unbanned  · 技术社区  · 15 年前

    我的动态数组中充满了字节,这些字节是用blockread()从.raw文件中读取的,而这个操作在逻辑上需要大量的shell资源,我想知道是否有任何方法可以保留一定数量,或者限制用于程序运行时从硬盘驱动器读取/写入/查找的最大数量。*****

    [澄清] :我打算在使用Windows Shell/内部应用程序资源执行操作时设置HDD的最大读取速度。在这一刻,应用程序对HDD的性能非常敏感,但它会导致一些机器冻结/锁定,因为系统无法管理磁盘操作…

    我想知道任何方法、教程,在最坏的情况下都可以找到函数声明和类信息。

    据我所知,作为Delphi基础的Pascal并不能提供非常简单的方法,因为最好的方法可能是tstream或tpipeline用法(tsocket不应该是好的,对吧?)……虽然我经常使用小溪,但我不喜欢它,因为有一些水下石头和特菲勒溪。

    无论如何-请至少给我介绍一下磁盘性能管理…

    2 回复  |  直到 14 年前
        1
  •  1
  •   Daniel Rikowski    15 年前

    恐怕没有办法用WindowsAPI或Delphi函数来限制IO活动。(例如,与线程不同)

    您只能通过在代码中添加sleep命令或类似的东西来降低IO访问速度。

    您可以使用 WMI 如果有高IO活动,增加延迟。

        2
  •  1
  •   gabr    15 年前

    回复:“我想设置硬盘的最大读取速度…”

    你自己节流就行了。在后台线程中进行磁盘访问,并根据需要的吞吐量限制操作。