Safariが不安定な理由を考える。

以下、単なる推測で根拠レス。
思うに、iPhoneSafariは不安定過ぎる。OSが2.1にバージョンアップしても本質的には変わらない(安定しない)のが、いかがなものかと思う。
ところが、Mac OS X版のSafariは十分実用的と言えるほどに安定している。Windows版は実用的と呼ぶにはいま一歩。でも、不安定と言うほどではない。
なので、これらのSafariの基本設計が共通であるとすれば、iPhone版だけこんなに不安定なのは疑問が生じる。
で、その理由を考えると、iPhone版のSafariが不安定なのは、メモリが足りないからではないだろうか?
DRAMの単価が下がりまくった結果、いまどきのPCは1GB以上のメモリを積むことは珍しくない。自分もWinXP機には2GB。Mac miniには2.5GBのメモリを積んでいる。それに物理メモリが足りなくても、PCは仮想記憶をHD上に持つことが出来る。
ところが、分解記事などによると、どうやらiPhone 3Gのメインメモリは128MBらしい。これはPC並みのWebブラウジングを提供する、iPhoneにはかなり厳しい数値だろう。そもそも、OSが稼働するメモリも必要だし、Flashメモリを仮想記憶にすることは想定していないだろう。
実際、Safariが落ちるときのパターンを見ていると、OSを立ち上げてすぐの時は落ちにくく、さんざん色々なサイトを閲覧した後だと落ちやすい。しかも、HTMLをレンダリング中や、Webページをスクロール中に落ちる場合が多い。それらの挙動からして、malloc()が失敗に終わって、エラーハンドリングに入るものの、さらにその処理の途中でも、malloc()出来ず、どうにも処理が継続できなくなって、落ちちゃうのではないだろうか?
もしこの仮定が真実ならば、少なくともメモリを積んでやれば安定することになる。なので、次の世代かさらに次の世代では、メモリが2倍になっている可能性を考えれば、将来は明るい。
ところが、残念なことにこれが真実だとすれば、現行世代のiPhone 3GSafariが安定する可能性は低い。自分はiPhone購入時の契約で「新スーパーボーナス」の24回払いを選んでしまった。このため、基本的に2年縛りなので、来年、次世代iPhoneが発売されたとしても、乗り換えることはためらわれる。*1うーん、24回払いにこんなワナが潜んでいようとは、契約するときには考えもしなかった。トホホ。

*1:えー、また一回線新規契約?(ぉぃ