2

我有一个充满字节的动态数组,这些字节是使用 BlockRead() 从 .raw 文件中读取的,从逻辑上讲,这个操作需要大量的 Shell 资源,我想知道是否有任何方法可以保留一些数量或限制最大数量用于从硬盘驱动器运行程序的读/写/寻道*****

[澄清]:我的意思是在使用 Windows shell / 内部应用程序资源执行操作时设置 HDD 的最大读取速度。此时应用程序对硬盘的性能非常敏感,但由于系统无法管理磁盘操作,导致多台机器冻结/锁定......

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

据我所知,作为 Delphi 基础的 Pascal 并没有提供非常简单的方法,因为最好的方法可能是 TStream 或 TPipeline 使用(TSocket 应该不是很好,对吧?)......我使用过很多流,我不喜欢这是因为有一些带有 TFileStream 的水下石头......

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

4

2 回答 2

1

RE:“我的意思是设置硬盘的最大读取速度......”

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

于 2009-07-08T07:51:59.963 回答
1

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

您只能通过在代码中添加睡眠命令或类似的东西来减慢 IO 访问速度。

您可以使用WMI读取当前的 IO 活动,并在 IO 活动高时增加延迟。

于 2009-07-08T07:52:45.173 回答