IS01に使っているSDカード

IS01+8GB(SDHC)


IS01WiFiで使っています。
SDHCカードは、8GBのものを挿しています。

で。
オフライン地図としてMaps(-)をとても便利に使っているのですが、そのキャッシュがずいぶんと大きい。

キャッシュのフォルダをWindowsで見てみると、こんな感じ。

実データ量が 404MB に対して、消費しているのは 3.21GB !!

なんと、8倍以上の領域を無駄に消費しています。

これは、クラスタサイズ(ファイルアロケーションサイズ)というものに起因しています。
クラスタサイズというのは、ファイルを保存するときに消費するブロックのサイズです。
例えば、クラスタサイズが4kBの場合。

  • 1kBのファイル ==> 4kB分の領域を消費。
  • 5kBのファイル ==> 8kB分の領域を消費。
  • 10kBのファイル ==> 12kB分の領域を消費。

単純には、クラスタサイズで割り切れない分を切り上げた数のクラスタを消費する、という感じ。
(10kBなら、10[kB]÷4[kB/クラスタ] = 2[クラスタ] あまり 2kB → 3[クラスタ]を消費 = 3[クラスタ]×4[kB/クラスタ] = 12[kB]分を消費。この際の無駄になった2kB部分をクラスタギャップと呼ぶ)

クラスタサイズが大きいほどこのギャップは大きくなりやすく、また、ファイル数が多くなるほど、この影響が顕著になってきます。
容量を無駄にしないためには、小さなクラスタサイズが望ましいです。

なお、クラスタサイズが小さいと、管理するための領域が大きくなる、領域が細切れになるのでフラグメンテーション(断片化)が生じやすい、オーバーヘッドが大きくなるためアクセスが遅くなる、などのデメリットもあります。
(また、フラッシュメモリの場合は特に、クラスタサイズとはまた別に、物理的にブロック単位での読み書きが行われるため、パフォーマンスが著しく悪くなる可能性もあるらしい)


しかし、IS01で使う分には、容量のほうが重要。
特に、Maps(-)のように、小さなファイルが大量にある場合は、クラスタギャップで無駄になる容量が非常に大きい。


そこで、一度、PCで小さなクラスタサイズを指定してフォーマットし直すことにしました。