私の上司は、ハードドライブがディスク上の2つの場所間でヘッドを切り替え続ける必要があるため、2つのファイルを同時にコピーする方が、一方をコピーするよりも時間がかかると言っていました。これは本当ですか?オペレーティングシステムは、これを修正するのに十分スマートであるように思えます(つまり、それらを順番にコピーすることを知っている必要があります)。 USBポートに接続されたドライブにコピーする場合、これは本当ですか?
編集:考慮に入れるファイルシステムに関する他の要因はありますか?たとえば、10個のファイルを含む1つのディレクトリをコピーするのと、ディスク全体から10個のファイルをコピーするのでは違いがありますか? 1つのソースメディアと1つの宛先メディア(複数のドライブからの読み取りなし)についてのみ疑問に思っています。
この質問 まで延期します。同じディスク上で2つのコピー操作を同時に実行すると(別々のコピー操作から開始されますが)、競合する操作間でヘッドがシークしているため、レイテンシが発生するため、実際には時間がかかるようです。
ただし、コピー操作が同時に開始された場合、最新のオペレーティングシステムの大多数は、転送を1つずつエンキューするのに十分スマートだと言っています。もう1つは、コピー時間が多少速くなるはずです。
Teracopy および FastCopy のように、ファイルコピー操作を強制的にキューに入れて順次実行するために利用できるアプリケーションがいくつかあるようです。
ただし、複数の物理ボリュームに対して並行コピー操作を実行することは、まったく別の問題です。代替プロトコルを介してファイルを転送するように。
USBポートに接続されたドライブへのコピーに関する質問に関しては、ドライブが使用するメモリのタイプと使用されているUSB仕様(確かに、USB 1.0および2.0の注目すべきボトルネック)に大きく依存します。コピー元のボリュームに関する要因を述べた。
これに影響を与える可能性のある要因はたくさんあります。
OSがこれを修正するのに十分スマートであるかどうかに関しては、一般的にはそうです。つまり、複数のファイルを同時にコピーする場合(たとえば、一度に複数のファイルを選択してドラッグアンドドロップすることを考える)。
もちろん、2つのcp
コマンドを開始すると、2つのコマンドが実行されます。Windowsでは、個別のファイルをコピーして貼り付け、画面に2つの「コピー」進行状況ウィンドウが表示されたら、最適化は行われません。この場合、2つのコピーを同時に実行するようにOSに明示的に指示しているため、一方のコピーが他方よりも重要であると判断してキューに入れ始めることはありません。
GUIから、または "copy C:\ folder * D:\ folder \"のようなコマンドを使用して複数を選択してコピーする場合、ファイルはとにかく順次コピーされ、問題が疑わしくなります。
一部のファイルをコピーし、それらがコピーしている間に、GUIからの2つの別々の操作、または "cp -r/usr/bin// opt/bin /& cp -r/usr/local/bin// opt/local/bin/"-その後、パフォーマンスはほぼ確実に低下します-少し(ハイエンドソリッドステートドライブ、両方のコピー操作で大きなファイル)、または多分TON(回転ディスク、一方または両方の操作での比較的小さなファイル)優れたオペレーティングシステムはパフォーマンスの低下をある程度軽減する可能性があります。たとえば、最近のLinuxカーネルはCFQ(Completely Fair Queueing)I/Oスケジューラーを使用します。これにより、ある程度の「バッチ」ブロック操作で効率が向上しますが、パフォーマンスヒット。回転ディスクはシーケンシャルI/OよりもランダムI/Oの方が劇的に遅いため、場合によってはヒットが非常に大きくなる可能性があります(潜在的に2桁以上遅いため、最新のI/Oスケジューラが問題を緩和するために最善を尽くす理由です)不要なシークを最小限に抑えるために操作をバッチ処理およびキャッシュする。
TL; DR-パフォーマンスが心配な場合は、operationに含まれる個々のファイルの数に関係なく、一度に1つのコピーのみoperationを実行します。