次のテストを実行しました。このバッチを使用して、400バイトの15'000ファイルを含むフォルダーを作成しました。
@ECHO off
SET times=15000
FOR /L %%i IN (1,1,%times%) DO (
fsutil file createnew filename%%i.txt 400
)
次に、次のコマンドを使用して、Windowsコンピューターにコピーして貼り付けます。
robocopy LargeNumberOfFiles\ LargeNumberOfFiles2\
完了後、転送速度は915810バイト/秒であり、これは1MB/秒未満であることがわかります。7Mバイトをコピーするのに数秒かかりました。これは非常に遅いことに注意してください。
私は50Mバイトの単一ファイルを含むフォルダーで同じことを試しましたが、転送速度は1219512195バイト/秒です。(ええGB / s)瞬時。
なぜ多数のファイルをコピーするのに非常に時間がかかるのですか?Windowsファイルシステムのリソースですか?
ext3ファイルシステムを備えた仮想マシン(vmwareプレーヤー)の同じコンピューターで実行されるLinuxシステムで同じことを試みたことに注意してください。
cpコマンドを使用すると、コピーは瞬時に行われます。
次の点にも注意してください。
- ウイルス対策なし
- 複数のWindowsコンピューター(常にntfs)での動作をテストしましたが、常に同等の結果が得られます(7Mバイトをコピーするための転送速度は1MB/秒未満で平均7〜8秒)
- 私は複数のLinuxext3システムでテストしましたが、その量のコピーは常に瞬時に行われます(400バイトの15000ファイル)
- 問題は、たとえばLinuxのファイルシステムと比較して、Windowsファイルシステムが多数のファイルをコピーするのが非常に遅い理由を理解することです。