回答:
HDDには正確な転送速度はありません。適切なメンテナンスに依存しています。つまり、断片化されていないか、不良セクターがないかなどです。
HDDがSATA 2であり、同じパーティションである場合、それはデータ転送の速度にすぎません。
同じHDDに2つのパーティションがある場合、バスとマザーボード間のこのデータ転送は必要ありません。つまり、バッファにロードされます。(その後、hddバッファーサイズによって異なります。)
ただし、コピーされるすべてのファイルについて、システムはそのインデックスをHDDのMFT(マスターファイルテーブル)に保持する必要があるため、多くのファイルをコピーする場合、コピープロセスが遅くなります。また、アンチウイルスがある場合は、コピーされた各ファイルをスキャンします。また、Microsoft検索ファイルのインデックス作成(またはその他のファイルインデックスサービス)を有効にしている場合、結果はさらに悪くなります。
多くのファイルのコピーが遅い理由は他にもたくさんあるに違いないと思いますが、これらが主な理由です。
ファイルの数が異なるのはなぜですか?
どうやらあなたは「ファイルをコピーする」という「データをコピーする」という側面だけに焦点を合わせているようです。ファイルは単なるデータではありません。これはファイルシステムのエンティティです。ファイルには、名前、属性、および権限があります。ファイルに関するこのすべての追加情報は、「ファイルがコピーされた」ときにデータとともに複製される必要があります。このファイルシステムのオーバーヘッドを実行するには、かなりの量のディスクI / Oがあります。
一般的なファイルシステムで1つのファイルをコピーする手順は、次のようになります。
(a)少なくとも、これは現在のディレクトリを検索することを意味します。または、パスがファイルシステムのルートから始まる場合があり、ディレクトリのいくつかのレベルをたどる必要があります。
(b)少なくとも、これは現在のディレクトリを検索することを意味します。または、パスがファイルシステムのルートから始まる場合があり、ディレクトリのいくつかのレベルをたどる必要があります。宛先ファイルがすでに存在する場合は、コピーを続行するか中止するかを決定します。宛先ファイルが存在しない場合は、新しいディレクトリエントリを作成する必要があります。これには、ディレクトリの拡張(つまり、ファイルブロック(別名クラスタ)割り当てオーバーヘッド)が含まれる可能性があります。
(c)のディレクトリが展開されなければならない場合、空きブロックを見つけることによって新たなブロックを割り当てる変更し、新しい割り当てと割り当てテーブルを、及び書きディスクにブロック(複数可)を実施。ほとんどのファイルシステムはアロケーションテーブルの複数のコピーを保持しているため、ディスクへの複数の書き込みを意味します。
(c1)コピー先ディレクトリが見つかったら、ディスクからディレクトリブロックを読み取り、コピーしたファイルの新しいディレクトリエントリで変更してから、ブロックをディスクに書き込みます。
(d)にファイルをコピーするために、フリーブロックを見つけることによって、ブロックを割り当て、変更、新しい割り当てと割り当てテーブルを、及び書きディスクにブロック(複数可)を実施。ほとんどのファイルシステムはアロケーションテーブルの複数のコピーを保持するため、ディスクへの複数の書き込みを意味します。データの整合性を維持するために、ファイルシステムは、ディレクトリとアロケーションテーブルのディスク書き込み操作を合体(遅延およびマージ)しようとせず、新しいファイルが作成されてブロックが割り当てられるとすぐに書き込み操作を実行します。
(e)のデータがcompleleでコピーしたら、更新し、適切なファイルの長さとタイムスタンプを持つコピーされたファイルの新しいディレクトリエントリを、その後、書き込みディスクへのディレクトリブロックを。
(f)に 更新し、新たな「アクセス」のタイムスタンプでソースディレクトリエントリをして、書き込みディスクへのディレクトリブロックを。
したがって、1つのファイルだけでなく、1,000のファイルに対してこのすべてを行うと、ファイルのデータ部分をコピーするだけの時間が長くなるのではないかと質問されていますか?24MBのファイルを1つだけコピーする場合、1,000ファイルのコピー時間と比較する必要があります。
ファイルシステムをバックアップするとき、ディスクまたはパーティション上の別のファイルシステムに個々のファイルをコピーすることはめったに採用されません。より高速な方法は、ソースディレクトリのエントリとファイルの内容を特別なファイル形式で保持する単一のアーカイブファイルを作成して書き込むことです。バックアッププログラムと* nixコマンド「tar」は、そのようなアーカイブファイルを出力できます。( 'tar'はアーカイブファイルを処理するだけであり、アーカイブ+圧縮ユーティリティのような圧縮を使用しないことに注意してください。)バックアップの最速の方法は、(デバイス上のファイルシステムではなく)ブロックデバイスに書き込むことです。無視(より多くのデータとして扱われる)し、ソースデバイスのブロックごとのイメージコピーを実行できます。
(親愛なるインターネットを思い出してください、アナロジーには欠陥があります。コメントでどのように指摘してもかまいません。)
==
子供をサムと呼んで、卵をバスケットから別のバスケットに移動しています。==
空気だと思います。ここではあまり重要ではありません。==
卵のボリューム。ロビンの卵とドラグゴンの卵を比較してください。だから、サムは農場で働いているので、あるバスケットから別のバスケットに卵を移動する必要があります。この農場には、ドラゴンや神話の海獣など、さまざまな産卵動物があります。サムはいくつかの理由でこれが素晴らしいと思っています。(それほど重要ではありませんが、これは私の例えです)
サムは2つのバスケットを持って川のそばでまったりしています。バスケットの1つは卵が入っているバスケットです。かごの中の卵のサイズの範囲
100 bytes
かごの中のスペースのように 取り上げるロビンの卵に
2.7Gb
。サムは卵を動かし始めなければならないので、彼は卵をつかんで動かし始めました。彼が最初にドラゴンの卵を動かすことに決めたとしましょう。現在、卵は非常に重く、密度が高いため、他のバスケットに物を入れるのに少し時間がかかります。
サムはドラゴンの卵を別のバスケットに入れ、腹を立てます。物事が非常に多くのスペースを占めるため、それは困難でした。その移動は、たった一個の卵のために長くかかりました。
サムは最初のバスケットに戻って別の卵をつかみます。彼は自分が本当に大きなものを1つしか持っていないことに気づきました。しかし、10 億個のロビンの卵が残っています。
ご覧のとおり、サムの午後は台無しにされています。彼の自然な傾向は、恐竜の卵は彼が移動しなければならないためにはるかに悪いはずであるということでしょう。私たちが卵とバスケットについて話すとき、それは理にかなっていますが、コンピュータは10億のような数を扱います。
いくつかの小さなファイルを移動するのに、いくつかの大きなファイルを移動するよりもはるかに時間がかかる理由についての答えは、それらを移動するアクションに関連するコストに関係しています。小さいファイルが多いほど、そのアクションを実行する必要がある回数が多くなります。これを見る別の方法は、情報密度について話すことです。
FATの読み取り、ヘッドの再配置、ファイルの変更時にファイルを開く-すべて時間がかかる