2

BlockRead() を使用して .raw ファイルから読み取られるバイトで満たされた動的配列があり、この操作は論理的にシェルリソースの地獄を必要とし、いくらかの量を予約する方法または最大量を制限する方法があるかどうかを知りたかったハードディスク ドライブからのプログラム実行時に使用される読み取り/書き込み/シーク*****

[明確化] : Windows シェル/内部アプリ リソースでアクションを実行している間、HDD からの最大読み取り速度を設定するつもりでした。現時点では、アプリは hdd のパフォーマンスに非常に敏感ですが、システムがディスク操作を管理できないため、複数のマシンでフリーズ/ロックが発生します...

メソッド、チュートリアル、最悪の場合、関数宣言とクラス情報が見つかるユニットについて知りたいと思いました。

私が知っている限りでは、Delphi のベースとしての Pascal は、TStream または TPipeline の使用が最適な可能性があるため、非常に簡単なアプローチを提供しません (TSocket は良くないはずですよね?)... ストリームを使用してきた限り、私は好きではありませんでしたTFileStreamで水中の石がいくつかあったので...

とにかく、少なくともディスクのパフォーマンス管理について紹介してください...

4

2 に答える 2

1

RE:「HDDからの最大読み取り速度を設定するつもりでした...」

自分でスロットルを行うだけです。バックグラウンドスレッドでディスクアクセスを実行し、必要なスループットに応じて操作を抑制します。

于 2009-07-08T07:51:59.963 に答える
1

WindowsAPIまたはDelphi関数を使用してIOアクティビティを抑制する方法はありません。(たとえばスレッドとは異なり)

コードにスリープコマンドなどを追加することによってのみ、IOアクセスを遅くすることができます。

WMIを使用して現在のIOアクティビティを読み取り、IOアクティビティが多い場合は、遅延を増やすことができます。

于 2009-07-08T07:52:45.173 に答える