技術コラム
パフォーマンステストとFAT32
SDカードのパフォーマンス(書き込み速度)をテスト(評価)するのは難しいことです。
カードに記録されているデータの状態によって、違ってくるからです。
フォーマット直後のカードなら、データは連続的に記録できるのでパフォーマンスは速く、均一です。
しかし、使用を繰り返していくうちに、パフォーマンスが落ちる「一瞬」が発生してしまいます。
ファイルの作成や編集、削除などを繰り返していくうちに、空き領域が飛び飛びになり、新しく記録しようとするデータも、飛び飛びにならざるを得なくなります。
このとき、新たしい空き領域を探す行為に時間がかかってしまい、これがパフォーマンスを落とす一番の要因になると考えられます。
さてそれでは、それをどのようにテストすればよいのか、それは弊社にとって常に課題です。
★パフォーマンスが最も落ちるのはどのような状態か?
★そのような、
パフォーマンスが落ちる状態をどのように作り出してやればよいのか?
★どのようなテストでパフォーマンスを計ればよいのか?
●FAT16でのテスト方法
そこで弊社ではつぎのように考え、テストを行ないました。
★パフォーマンスが最も落ちるのはどのような状態か?
-->大きな使用済み領域があり、それをまたぐとき。
★そのような、
パフォーマンスが落ちる状態をどのように作り出してやればよいのか?
-->小さなファイルを作る。-->大きなファイルを作る。
-->小さなファイルを削除する。
★どのようなテストでパフォーマンスを計ればよいのか?
-->連続的に送信されてくるデータを、取りこぼさず記録できるか?
ビットレートを上げてゆき、どのビットレートまで、
取りこぼさず記録できるか?
●FAT32でのテスト方法
FAT16ではこの方法でテストできていたのですが、FAT32ではどうもこの方法が通用しなくなりました。
FAT32はなにがしかが少し賢くなっている様子で、パフォーマンスの悪い状況を意図的に作り出せずにいました。
そこでFAT32を調べてみると、つぎの空き領域の検索を開始する位置を、記憶していることが分かりました。
これにより、小さなファイルを削除したあとも、空き領域検索開始位置は大きなファイルの後ろを示したままになり、新しくできるファイルは連続的に作られたのだと思われます。
カードの後ろの方の領域をルーズに放置していたのが悪かったようです。
さてそこで・・
★FAT32で、
パフォーマンスが落ちる状態を、どのように作り出してやればよいのか?
-->後ろまでぎっしり詰め込むこと。
-->空き領域の隙間を何か所か作ってやること。
-->空き領域の検索を開始する位置は1個しか記憶されず、
空き領域の隙間が何か所もある場合は効果を望めません。
この方法で、FAT32でもパフォーマンスの悪い状態を作ることが出来ました。
FAT32のパフォーマンステストは、このような方法で行なえるようになりました。