4

実際にファイルを読み込まずに、Windowsでリムーバブルドライブの速度を判断する方法はありますか?また、ファイルを読み取る必要がある場合、半正確な速度を得るにはどれくらいの量を読み取る必要がありますか(たとえば、デバイスがUSB2かUSB1かを判断します)。

編集:明確にするために、USB2とUSB1は例でした。これらはコンパクトフラッシュ、SSD、リムーバブルドライブの可能性があります。そして、アプリケーションの応答性に実際に影響を与えるので、これをできるだけ早く判断しようとしています。

編集:明確にする必要があります、これはプログラムで行う必要があります。おそらくC++で実行されます。

編集:ブーストの答えは私が探していたものの一種です(私はC ++でWMIを書いていませんが)。しかし、相対速度を決定するためにチェックしなければならないプロパティを知る必要があります。正確な速度は必要ありませんが(USB1とUSB2の速度の違いについて述べたように)、SLLOOOOWWWになるかどうかを知る必要があります。

4

7 に答える 7

2

WMI - Physical Disks Propertiesは、私が見つけた記事で、少なくとも何を接続しているかを理解するのに役立ちます。特定のメーカーやモデルを速度と同一視するテーブルに向かっていることが予想されますが、これはあなたが望んでいたほど単純な解決策ではありません.

于 2008-10-09T14:04:05.623 に答える
2

データ転送タイミング情報からハードウェアをリバース エンジニアリングするよりも、オペレーティング システムにハードウェアに関する情報を照会した方が良い結果が得られる場合があります。

たとえば、転送速度が同じであっても、必ずしも 2 つのデバイスで同じテクノロジが使用されているとは限りませんが、そのような情報がアプリケーションで利用できる場合は、シーク時間などの他の要因によって精度が向上します。

この作業が完了している間、アプリケーションの応答性を維持するには、呼び出しを非同期で行い、何らかの進行状況インジケーターをユーザーに提供してみてください。例として、WinDirStatがこの進行状況の表示を処理する方法を見てみましょう (各ディレクトリが分析されるときのパックマンのアニメーションが気に入っています)。

于 2008-10-08T16:37:58.543 に答える
0

数メガバイトだと思います。転送速度は最初は遅く、転送が進むにつれて速くなります。また、ファイル サイズによる違いもあります (単一の 1 GB ファイルは、1 GB の小さなファイルよりもはるかに高速に転送されます)。

これを行う最善の方法は、デバイスとの間でファイルをコピーし、コードでかかる時間を計ることです。USB1 の速度は 11Mb/s (だと思います)、USB2 は 480Mb/s です (これらは各ポートではなくバス全体の数値であるため、同じバス上の複数のデバイスによって実際の数値が変わることに注意してください)。

于 2008-10-08T16:09:05.717 に答える
0

レイモンド・チェンの水晶玉を借りて、これは本当にいらないと言います。おそらく、非同期 I/O を使用したいと思うでしょう。I/O の結果が 1 秒以内に得られない場合は、どの程度の結果が得られたかを確認する必要があります。その数の逆数を取ると、ユーザーに引用する適切な見積もりが得られます。

1 秒経っても何も起こらない場合は、びっくりするかもしれません。しかし、それさえ起こりえます。たとえば、ハードディスクがスピンアップするのに 1 秒かかる場合があります。何かが起こるまで毎秒ポーリングするだけです。

于 2008-10-10T15:21:28.483 に答える
0

データ転送速度に影響を与える可能性のあるものの数を考慮してください。

  • デバイスをシステムに接続するために使用されるバスの速度。USB1 経由で接続されていない限り、これが境界要因になる可能性は低いです。
  • ハードドライブの場合、回転速度とシーク時間が重要です。7200 RPM ドライブは、5400 RPM ドライブよりも高速にデータ ブロックを読み書きします。
  • 光学ドライブと磁気ドライブは通常、使用していないときはスピン ダウンするため、最初のアクセスは 2 番目のアクセスよりも桁違いに時間がかかります。
  • 特定のデバイスで使用されるファイルシステム。
  • データとファイルシステムのメタデータのキャッシュ。キャッシュされるメタデータが少ないほど、磁気ドライブまたは光学ドライブは、データの場所を把握するために多くのことを求めなければなりません。
  • データ アクセス パターン。ほとんどの場合、少数の大きな連続したファイルにアクセスする方が、ディスク上に散在する多数の小さなファイルにアクセスするよりも高速です。
  • ファイル システムの断片化

予想されるデバイスのさまざまな特性に基づいていくつかのヒューリスティックを作成できる場合がありますが、一般に、バス、メディア、ファイル システム、およびデータ アクセス パターンの特定の組み合わせの転送速度を特定する良い方法はありません。実際に測定します。測定することにした場合は、最終的なアクセス パターンをできる限り厳密にシミュレートしてみてください。

于 2008-10-08T17:23:53.117 に答える
0

Windows では、接続されている USB デバイスが USB2 であるかどうかを確認するには、デバイス マネージャーから [表示] -> [接続ごとのデバイス] を選択し、デバイスが USB2 コントローラー (USB2 拡張ホスト コントローラー) の下にあるかどうかを確認します。

これは、デバイスが実際に高速で動作するという意味ではありませんが、そのためには実際のスループット テストが必要になることに注意してください。Sisoft Sandraベンチマーク ソフトウェアは、その機能リストでサポートされているリムーバブル ハード ドライブをリストしています。

編集:元の質問が明確になったため、新しい回答を提出しました。

于 2008-10-08T16:17:32.720 に答える
0

TerraCopyを試して、1 つの大きなファイル ~400mb - 500mb をデバイスからデバイスにコピーすると、速度がわかります。

于 2008-10-08T16:23:32.740 に答える