Windows MobileでQMAIL3のメールボックスを外部メモリ(microSDなど)に置いた時、デフォルトのクラスタサイズが大きいmicroSDでは、メールボックスがやけに大きくなってしまいます。microSDのクラスタサイズを小さくしてみました。すると、クラスタサイズによる容量オーバーヘッドは解決したのですが、書き込み速度が遅くなってしまいました。そのことを書いておきます。
QMAIL3のメールボックスを外部メモリに置く方法は、ドキュメントに詳しく書かれています。外部メモリに置くことで、内蔵メモリを節約できます。
Windows CEで外部ストレージに実行ファイルやメールボックスを置くとハングアップします@QMAIL3
さて、willcom03でQMAIL3lを使い始めて1年くらい経ったのですが、最近メールボックスが妙にメモリを食っていることが分かりました。メールの実質的なデータは7.19MBなのに、100MB近く消費してしまっています。メールの数は3000通くらい。microSDは東芝の8GBのものです。
これは、microSDのクラスタ(アロケーションユニット)サイズが大きいことが原因です。QMAIL3では、外部メモリにメールボックスを置くためには、1メール1ファイルとしなくてはなりません。「今からかえるよー」みたいな一言メールなどは、500byte程度のテキストファイルなのにもかかわらず、クラスタサイズ分の領域を消費してしまいます。東芝の8GB microSDのデフォルトのクラスタサイズは32kBのでした。32kB×3000通≒100MBでおおよそつじつまがあります。
microSDをmicroSD-USB変換器でPCに接続してみました。変換器は100円で秋葉原の路上に売られています。そしてまずデータをPCに待避してから、SDFormatterでフォーマットしてみます。このプログラムではクラスタサイズは設定できないみたいです。
フォーマットをしてみると、
だめです。クラスタサイズが32kBにされてしまいます。仕方が無いので、コマンドプロンプトで、やってみました。
D:\>help format
Windows XP で使うディスクをフォーマットします。
FORMAT ボリューム [/FS:ファイルシステム] [/V:ラベル] [/Q] [/A:サイズ] [/C][/X]
FORMAT ボリューム [/V:ラベル] [/Q] [/F:サイズ]
FORMAT ボリューム [/V:ラベル] [/Q] [/T:トラック数 /N:セクタ数]
FORMAT ボリューム [/V:ラベル] [/Q]
FORMAT ボリューム [/Q]
ボリューム ドライブ文字 (文字の後にはコロンを付ける)、マウント
ポイント、ボリューム名を指定します。
/FS:ファイルシステム
ファイルシステムにはファイルシステムの種類を指定します
(FAT、FAT32、または NTFS)。
/V:ラベル ボリューム ラベルを指定します。
/Q クイック フォーマットを実行します。
/C NTFS のみ: 新しいボリューム上に作成されたファイルは、
既定では、圧縮されます。
/X 必要であれば、最初にボリュームを強制的にマウントを解除
します。ボリュームへ開かれているすべてのハンドルは、無効
になります。
/A:サイズ 既定のアロケーション ユニット サイズを無効にします。
一般的には、既定の設定を使用してください。
NTFS は、512、1024、2048、4096、8192、16K、32K、64K を
サポートします。
FAT は、512、1024、2048、4096、8192、16K、32K、64K を
サポートします
(セクタ サイズが 512 バイトよりも大きい場合は 128K、 256K)。
FAT32 は、512、1024、2048、4096、8192、16K、32K、64K を
サポートします
(セクタ サイズが 512 バイトよりも大きい場合は 128K、 256K)。
FAT と FAT32 ファイル システムは、下記のボリュームの
クラスタ数の制限に従います:
FAT: クラスタ数 <= 65526
FAT32: 65526 < クラスタ数 < 4177918
指定されたクラスタ サイズを使用して、上記の要件に一致しない
と判断した場合、フォーマットの処理を直ちに停止します。
NTFS 圧縮は、4096 より大きいアロケーション ユニット サイズ
に対してはサポートされません。
/F:サイズ フォーマットするフロッピー ディスクのサイズを指定します (1.44)
/T:トラック数 ディスクの片面あたりのトラック数を指定します。
/N:セクタ数 トラックあたりのセクタ数を指定します。
D:\>format E: /FS:FAT32 /A:1024
新しいディスクをドライブ E: に挿入してください
準備ができたら Enter キーを押してください...
ファイル システムの種類は FAT32 です。
検査しています 7589M バイト
指定されたクラスタ サイズは FAT32 には小さすぎます。
1024は駄目みたい。2048でやってみる。
D:\>format E: /FS:FAT32 /A:2048
新しいディスクをドライブ E: に挿入してください
準備ができたら Enter キーを押してください...
ファイル システムの種類は FAT32 です。
検査しています 7589M バイト
ファイル アロケーション テーブル (FAT) を初期化しています...
ボリューム ラベルを入力してください。
(半角で 11 文字、全角で 5 文字以内)
必要なければ、Enter キーを押してください:
フォーマットは完了しました。
7,741,108 KB : 全ディスク領域
7,741,106 KB : 使用可能ディスク領域
2,048 バイト : アロケーション ユニット サイズ
3,870,553 個 : 利用可能アロケーション ユニット
32 ビット : FAT エントリ
ボリューム シリアル番号は 203A-4D4E です
OK。できました。
メールボックスを戻して見てみると、ディスク上のサイズが10.7MBになりました。これくらいならば問題ありません。当初は実使用量の10倍以上を食っていました。
ところがここで問題発生。書き込みが体感的に遅くなってしまいました。ただ、さすがに、実使用量の10倍以上の容量を消費するのは許しがたいので、しばらくこのまま使ってみます。今度詳しく測ってみようと思います。
QMAIL3は、Windows Mobile環境ではとっても快適です。ドキュメントもしっかりしていて、安心できます。これがフリーってすごいです。
コメント
[…] […]