今のところ EMONE は安定して動いています。特にリセットしなければ
ならない様子もなく、メモリ(RAM、ワークメモリ)が多いおかげかもしれません。
だけどよく考えたら最初 W-ZERO3[es] を手に入れたばかりの時も同じように
感じたので、単に購入直後でまだそれほど使ってないせいかもしれません。

EMOBILE EM ONE 神経質なタスク管理からの開放」で書いたように、
今のところいちいちアプリの終了を気にしないで使ってみています。
使って気がついたのは、設定の「メモリ」で確認すると
実行メモリの空きがずっと 50~70MB くらいあることです。

だったら最初から入ってるアプリを全部起動しておけば、
昔の PDA (PI-ZAURUS/MI-Zaurus/Palm等) みたいに各機能の切り替えが早くなって
いいんじゃないかと、
PocketPC の本来の使い方を実践すべく片っぱしからアプリを起動してみました。





・注意点
 RealVGA 化しているのでおそらく標準状態とは数値に差があります。
 またフォントキャッシュを 4MB に拡張しています。キャッシュ容量が少ない
 状態で DicLand 等の文字を大量に使うアプリが裏で動いていると、
 かなり動作が遅くなってしまうようです。
 またさすがにこの状態では使っていません・・。


●リセット直後
 プログラム実行用
 合計: 111.20
 使用領域: 18.33MB
 空き領域: 92.87MB

●プログラム22本起動後
 合計: 111.20
 使用領域: 50.72MB
 空き領域: 60.48MB


プログラム22本起動時の値がこれです。実はここで大きな壁にぶち当たって
しまいました。これ以上アプリをいくら起動しても 20~22本で止まってしまい
これ以上に増えません。
ちょうどメモリ管理画面のリストの上から順番に、古いアプリが次々消されて
いきます。

いわゆるこれが WindowsCE のプロセス数制限なのでしょう。WindowsCE では
プロセス個数の最大が 32個までなので、システム側で常駐しているタスクが
約10本ほどあることになります。

また上の数値にはいくつか注意点があります。

・起動した直後で大きなデータを読み込んでいない
 IE、Opera、NetFront の3本だけ emobile.jp のトップページを開いて
 います。他のアプリは特に大きなデータを開いているわけではないので
 プログラム起動のみのメモリ使用量になっています。実際は大きなデータ
 を開くなど、使っているうちにもっとメモリを消費するでしょう。

・デマンドページングが考慮されていない
 起動時にプログラムコードが全部メモリに乗るとは限らないので、
 おそらく実行したコード分のページしか容量計算に入っていないと思われます。
 よってきちんと使用して機能を使っていればもっと増えるでしょう。


ですが WindowsCE 自体はメモリ空間が狭いので
まだまだ実メモリに余裕があることにはかわりません。

WindowsCE 5.0 の1プロセスあたりの仮想メモリ空間は 64MB しかないそうです。
これは共有の DLL 領域 32MB を含んだ大きさなので、1つのプロセスが
使用できる実メモリは半分の 32MB になります。
だから目一杯メモリを消費するアプリがあっても、あと2本分は大丈夫という
ことでしょうか。

EM・ONE で実行メモリを使い切る状態はなかなか無いのかもしれません。
もしかしたら StationMobile (ワンセグソフト) あたりがかなり使うのかも
しれません。


ちなみに 32×32 = 1024 なので、もし 1GByte のメモリ(RAM)があったら、
全プロセス(slot)の全メモリ空間を完全に埋め尽くすことができる計算です。
最近はリソースも増えて、ムービーなど巨大なデータを使うアプリケーション
も多いので、今となっては少々きつい仕様だと思います。

昔の WindowsCE では、この1プロセスあたりのメモリ空間がさらに半分しか
なかったそうです。

WindowsCE 6.0 からは、1プロセスに割り当てられる仮想メモリ空間は
2GByte (64倍)、同時に走るプロセス数の上限も 1000倍になるそうです。
これでようやく一般的な 32bit のデスクトップ用 OS と同等のスペックに
なります。
早く WindowsCE 6.0 の製品が出てきてほしいところです。
(WindowsMobile7.0あたりから?)