ハードディスクの速度を確認するにはどうすればよいですか? System.IO.File.Copy
ファイルをキャッシュした後、速度は実際の時間よりも実際に速くなるため、タイマーを使用してハードディスクの速度を取得することはできません。
代わりに何ができますか?
ハードディスクの速度を確認するにはどうすればよいですか? System.IO.File.Copy
ファイルをキャッシュした後、速度は実際の時間よりも実際に速くなるため、タイマーを使用してハードディスクの速度を取得することはできません。
代わりに何ができますか?
ファイルの書き込み後、後続の読み取り速度が予想よりもはるかに高速である理由は、ファイルが書き込まれるとき、つまりインメモリにファイルが OS によってディスク システム キャッシュにキャッシュされるためです。後続のファイルの読み取りは、実際にはディスクではなくメモリから読み取られます。
FILE_FLAG_NO_BUFFERINGフラグを利用して OS ディスク キャッシュをバイパスするソリューションを提供するこのコード プロジェクトの記事を参照してください。
http://www.codeproject.com/KB/files/unbuffered.aspx
このソリューションをコンテキストで使用して、OS ディスクのキャッシュを回避し、「実際の」ディスク速度を取得できます。
あなたは「リアルタイム」について尋ねています。実際にはキャッシュが使用されているので、問題はありません。File.Copyやその他の単純なテストの代わりに、スクリプトなどを使用してプログラムを実行することをお勧めします。
しかし、本当の問題は、それではどうなるのかということです。つまり、一部のディスクが十分に高速であるかどうかを調べようとしていますか、それともプログラムが十分に高速であるかどうかを調べようとしていますか?