USBメモリーに限定されることではないのだが、Windowsのエクスプローラーはファイルコピーが遅い。
Windowsでファイルをコピーするときは普通、一般的にエクスプローラーで行う。しかし、ファイルコピー用のツールと比較するととても遅い。
今回、FastCopyというソフトでコピーにかかる時間比較のために、内蔵のSATA SSDからUSBメモリーへのファイルコピーを行ってみた。
テスト環境
OS:Windows10 Pro 64bit
CPU:Core i5-3470s
RAM:12GB
コピーツール:FastCopy Ver.4.2.0
コピー先:SanDisk USB3.0メモリー SDCZ600-032G-G35 (FAT32、16KB)
コピー元:内蔵SATA SSD


コピーするファイル
テストは以下の4パターンで実施
- ファイルサイズ:512MiB
本数:1 - ファイルサイズ:512KiB
本数:1,000 - ファイルサイズ:4KiB
本数:2,000 - ファイルサイズ:ランダム(合計193MiB)
本数:1,954
テスト結果
ファイルサイズ:512MiB、本数:1
エクスプローラー:24.56秒
FastCopy:24.4秒
ファイルサイズ:512KiB、本数:1,000
エクスプローラー:45.37秒
FastCopy:36.5秒
ファイルサイズ:4KiB、本数:2,000
エクスプローラー:38.85秒
FastCopy:20.3秒
ファイルサイズ:ランダム(合計193MiB)、本数:1,954
エクスプローラー:58.87秒
FastCopy:41.8秒
考察
- 512MiBのファイルを1本だけコピーする場合には速度差は見られない。
- 512KiBのファイル1,000本において、約8.8秒の差が発生している。1本当たり0.0088秒。
- 4KiBのファイル2,000本において、約9.2秒の差が発生している。1本当たり0.0092秒。
- ランダムなサイズのファイル(合計193MiB)1,954本において、約17.0秒の差が発生している。1本当たり0.0087秒。
以上から、Windows10のエクスプローラーでのファイルコピーでは、FastCopyと比較すると、ファイルサイズとは無関係に1本当たり約0.009秒の遅れが発生しているということが推測できる。1,000本当たり約9秒の遅れなので、大量にコピーするのでなければ気にする必要もないが、万単位でコピーする際には相当な遅れとなり、無視できないかもしれない。
追加のテスト
NTFSでフォーマットし比較してみた
コピー先:SanDisk SDCZ600-032G-G35 (NTFS、4KB)
ファイルサイズ:4KiB、本数:2,000
エクスプローラー:26.03秒
FastCopy:6.0秒
20.03秒の遅れなので、ファイル1本当たり差が約0.0100秒であった。
差がさらに大きくなった。
※フォーマット形式の違い(FAT32とNTFS)で驚くほどの差がある。それでも100本当たり1秒。
別の高速なUSBメモリーで同様な比較を行ってみた。
コピー先:SanDisk SDCZ880-256G (FAT32、32KB)
※フォーマットはrufusで行った。

ファイルサイズ:ランダム(合計725MiB)、本数:5,514
エクスプローラー:106.38秒
FastCopy:60.0秒
46.38秒の遅れなので、ファイル1本当たり差が約0.0084秒であった。
高速なUSBメモリーであっても同程度の遅れが発生した。
内蔵のHDDで同様な比較を行ってみた。
コピー先:HGST HTS541010A9E680 1000.2 GB(NTFS、4KB、空き容量465GiB)
ファイルサイズ:ランダム(合計193MiB)、本数:1,954
エクスプローラー:15.88秒
FastCopy:3.7秒
12.18秒の遅れなので、ファイル1本当たり差が約0.0062秒であった。書込みキャッシュの影響なのか、これまでのテストの中で最も小さな遅れであった。
最後に
一度に何万本、何十万本ものファイルをコピーする場合はFastCopyなどのツールの使用を検討するのもあり。
NTFSでフォーマットした場合は、Windowsを終了する際、先に「ハードウェアの安全な取り外し」を行いUSBメモリーを取り外しておいた方が良い場合もあるので注意が必要。詳細はググって欲しい。