NVFSの話

多分にマニアックかつ妄想的な話ですので読みたい人だけ読んでね。


PalmOSは5.4から(だっけ?)NVFSに対応しているわけです。
これによって、プログラムやデータは普段不揮発性メモリに格納され、実行時にキャッシュメモリにコピーされて実行すると言う芸当が出来るようになったんです(うる覚え…^^;)。
利点はバッテリが空になってもデータやプログラムが消えなくなったと言う事。
ただ、弊害としてメモリを大量に消費するプログラムなどでは、実行時のキャッシュメモリの確保が大変で、起動が著しく低下したりパフォーマンスが低下したり、果てはメモリの確保が上手く出来ないとリセットがかかったりする訳ですよ。

T|Xは僕が最初に使ったNVFS対応デバイスな訳ですが、比較的高速なCPUとは裏腹に、満足なパフォーマンスを得られずに苦労をしました。
今でもキャッシュ容量をマメに確認しないと使えません。

NVFSは当初、1つのデータベースが使用する単位あたりのメモリブロックサイズが今よりも大きかったと記憶しています。
そのため、数100KBしか無いはずの予定表のデータベースをPalmにインストールした途端に何倍にも膨れ上がると言う問題が発生し、Palmコミュニティでも問題視されていました。

その後、扱うメモリブロックのサイズを小さくする変更がなされました。
これでメモリ問題は解決したように思われているのですが、もしかしたらアプリの起動パフォーマンスが悪い原因は、この辺にも問題があるんじゃないかと最近思ってます。

そりゃ、扱うメモリブロックサイズが小さく変更されたってことは、今まで3個分のメモリを確保すればよかったのが5個とか10個確保しないといけなくなるわけですからね。
それを考えると、このNVFSと言う仕組みには、まだまだ大きな問題が隠されていそうな気がする…。

と、一人でそんなことを思ったりする今日この頃。