最近USBメモリを利用する機会はめっきり減っているのですが、試してみて良かったです。結構速度に違いが出る場合もあれば出ない場合もあります。良い勉強になりました。
ページの趣旨
USBメモリのフォーマット規格を変更し、読み書き速度の測定を行い、最適な値を調べる。exFatを使うと、USBメモリの速度はどれくらい上昇するのかを調べる。
変更する箇所
・ファイルシステム・・・・ 主に FAT32 と exFat でチェック
・アロケーションユニットサイズ・・・・1024byte~4096KBでチェック
重要な事&注意事項
FAT32/exFatの違いやアロケーションユニットサイズによる書き込み速度の違いは、主にファイルの上書きで発生する。
なのでCrystalDiskMark などのベンチソフトでは、ほとんど差が出ない。
また、XPでexFatを使うにはKB955704パッチが必要。
Vistaでは、exFat USBをReadyboostに使う事は出来ない。
結果
- フォーマットにexFatを利用した方が高速。
- アロケーションユニットサイズを16KB~128KBあたりに設定すれば、かなり最適な効果が得られるっぽい。
- またアロケーションユニットサイズの最適な値は、USBメモリによって異なってくる。
手持ちUSBの場合、
・いずれも exFat の方が高速。
・2005年頃の 2GB USBメモリ・・・アロケーションユニットサイズ16~32KB
・2011年頃の 16GB USBメモリ・・・アロケーションユニットサイズ64KB
上記でファイルの読み書きが最も最速になった。
この結果はあくまで目安にすること。
フラッシュメモリのチップによって最適な値は変わる感じなので、手持ちのUSBメモリを何度かフォーマットを繰り返して自分で計測してみよう。
たぶん、フラッシュメモリの「ブロック」とアロケーションユニットが同じサイズ(もしくは2倍程度)になった時に最大の効果が得られる感じ。
詳細は以下。(けっこう長文)
テストに使ったUSBメモリ
手持ちの古いUSBばかりです。
▲左から
2005年頃に購入・・・2GB/ BUFFALO 型番失念
2009年頃に購入・・・4GB/ Kingstone Datatrabel 型番失念
2011年頃に購入・・・16GB/PicoDrive GH-UFD16GDX (高速タイプ)
(おまけ: CrystalDiskMark のみ)
4GBと16GBのUSBメモリは、まだ現役で絶賛利用中。
テストは主に、2GB(現役引退品)を利用しています。
計測方法
- テスト方法1
- ランダムなファイルサイズの画像を300個用意する
(このサイトで利用している画像:2KB~600KB、合計8MB) - 同名の小さいファイルを用意する
(画像一括縮小ソフトを使って1KB~400KBに縮小。合計6.5MB) - フォーマットしたUSBメモリに、
- まずは小さいファイル300個を書き込み、時間計測。
- そこに大きいファイルを上書き、時間計測
- さらに小さいファイルを上書きし、時間計測
- 「300個 8MBのテストってショボくね?」と思うかもしれないが、アロケーションサイズを大きく取ると、この程度でも必要なDiskサイズは1.3GBに達する。この量が限界だった。
- ランダムなファイルサイズの画像を300個用意する
- テスト方法2
- 512KBよりチョット小さいファイルを100個用意する
- 同名の512KBよりチョット大きいファイルを100個用意する。
- フォーマットしたUSBメモリに、
- まずは小さいファイル100個を書き込み時間計測。
- そこに大きいファイルを上書き、時間計測
- さらに小さいファイルを上書きし、時間計測
- テスト方法3
- (一応) CrystalDiskMarkでもチェックしておく
- テスト方法4
- Windows Readyboostに利用してみる
- 注意
テスト1~2はストップウォッチを使い手動計測しているので、最大0.5秒くらいの誤差がある。
テスト1 (2KB~600KBのファイル300個の上書き)
2005年購入 2GBのUSBメモリフォーマット 形式 | アロケーション ユニットサイズ | 書き込み1回目 | 同名ファイル上書き (4KB~600KB) | 同名ファイル上書き2回目 (1KB~400KB) |
FAT32 | 1024b | 1m50.8s | 13m25.5s | 4m50.6s |
FAT32 | 4096b | 17.8s | 1.24.6s | 30.2s |
FAT32 | 16KB | 19.8s | 1.00.4s | 22.7s |
ExFAT | 4096b | 36.8s | 1.14.0s | 18.1s |
ExFAT | 16KB | 14.8s | 39.8s | 17.9s |
ExFAT | 32KB | 17.7s | 27.2s | 19.6s |
ExFAT | 64KB | 24.0s | 30.4s | 25.2s |
ExFAT | 1024KB | 1m40.6s | 1m46.10s | 1m33.00s |
ExFAT | 4096KB | 1m23.2sec | 上書き不可 | 上書き不可 |
大きいファイルを上書き・・・・exFat 32KBが最速。
2011年購入 16GB高速USBメモリ(PicoDrive)
フォーマット 形式 | アロケーション ユニットサイズ | 書き込み1回目 | 同名ファイル上書き (4KB~600KB) | 同名ファイル上書き2回目 (1KB~400KB) |
FAT32 | 1024b | フォーマットできない | ||
FAT32 | 4096b | 14.5s | 16.5s | 15.8s |
FAT32 | 16KB | 14.1s | 12.4s | 12.8s |
FAT32 | 64KB | 16.2s | 11.4s | 12.9s |
FAT32 | 64KB(専用ツール) | 16.0s | 11.6s | 12.8s |
ExFAT | 4096b | 12.0s | 13.1s | 11.7s |
ExFAT | 16KB | 11.2s | 11.1s | 10.5s |
ExFAT | 32KB | 10.8s | 9.4s | 10.1s |
ExFAT | 64KB | 11.5s | 9.4s | 10.2s |
ExFAT | 128KB | 11.3s | 9.4s | 10.2s |
ExFAT | 1024KB | 20.8s | 29.4s | 21.7s |
ExFAT | 4096KB | 1m20.8 | 1m53.6 | 1m29.2 |
上書き・・・・exFat 16~128KBが最速。
ちなみに高速USBメモリには専用のフォーマットツールが付属していて、FAT32形式の64KBでフォーマットされる。アロケーションユニットサイズは64KBにしておくのが正解なんだろう。FAT32でフォーマットされるのは、汎用性を重視している為と思われる。