2

Windows アプリをチェックして、ディスクが遅いシステムでどのように動作するかを確認する必要があります。テストを繰り返すことができるように、Windows がコンテンツをキャッシュしないシミュレートされた低速ディスクを作成するにはどうすればよいですか?

更新:ディスクにアクセスするコードがたくさんあり、遅いディスクをシミュレートするための新しいクラスを作成できません。コードの一部はサードパーティであり、ソースコードにアクセスできません。

更新 2 : Directory.GetFiles() の速度も遅くする必要があります。

4

4 に答える 4

1

仮想マシンを使用してディスク アクセスを調整できます。ここでは、Virtualbox 5.8 でそれを行う方法に関するヒントをいくつか紹介します。ディスク イメージの帯域幅を制限するhttps://www.virtualbox.org/manual/ch05.html#storage-bandwidth-limit

MS と VMWare の仮想化ツールは同様の機能を提供すると思います。

于 2014-10-22T13:12:34.143 に答える
0

ソースコードがある場合は、ディスクの動作をエミュレートするクラスを記述し、すべてのディスク読み取り/書き込みコードをクラスへの呼び出しに置き換えることができます。

アプリケーションによって行われたリクエストをキャッシュし、少し遅れて実行する必要があります。

コードにアクセスできない場合は、遅いディスクをエミュレートするドライバーを見つけることを望みます...そのようなものが存在する場合。

于 2013-07-28T07:03:35.340 に答える
0

Sergey's answer のおかげで、ただし、場合によっては、より少ないコードでデコレーターなしで実行できる場合があります-必要な Stream オブジェクトから継承し、遅延して Read メソッドを上書きするだけです。同様の状況で私のニーズに十分なサンプルクラスを次に示します。

    public class SlowStream : MemoryStream
    {
        private readonly TimeSpan _delay;

        public SlowStream(byte[] buffer, TimeSpan delay)
            : base(buffer)
        {
            _delay = delay;
        }

        public override int Read(byte[] buffer, int offset, int count)
        {
            Thread.Sleep(_delay);
            return base.Read(buffer, offset, count);
        }
    }
于 2016-06-16T17:00:55.900 に答える