iPhone6をiOS9にアップデートして気づいた事。仮想メモリを使うようになった?
iOSのメモリ事情
iOSって、起動時点で400MB〜500MB位メモリを食っていたんです。
「SYS-Activity」というアプリケーションを使うとメモリの利用量等が確認できます。
iOS8の場合
こちらでiOS8で確認すると、メモリが結構いっぱいいっぱいで動いています。
上の画像だと、211MBの余力があるように見えますが、以前の記事でも書いたようにあまり利用しないアプリケーションはメモリが足らないために次回起動時にリセットされてアプリの初期画面から読み直しされます(例:LINEもメッセージからではなく、LINEのトップページに戻る)
iOS9の場合
同じ端末でiOS9にアップデートしてから確認するとこうなってました。
実メモリが変わらないが確保中が3.2GBになってる!
勿論、iOS9にアプリが対応していなくてバグとして表示されている可能性も大いにありますが、iOS9に変更してからアプリを沢山立ち上げても古いアプリがリセット起動される事が余りなくなった(個人的には、「粘るようになった」と表現)感じがしています。
ただ、リセットはされないけど、表示されるのに”もたつき”を感じる。
このため、「仮想メモリを利用するようになった?」と思った次第
仮想メモリとは?
実メモリは1GB変わらず。表示を正しいとしてみた場合、残りの2.2GBはどこから取っているのか?という話になりますが、これは「ストレージ容量」から取っていると考えられます。
ストレージ容量はiPhoneを購入するときに選ぶ容量で16GB、64GB、128GBから選択しますね。この容量のうち2.2GBを「メモリ」と見なして動作させる事によって全体のメモリ量を増やすという仕組み。
デメリットも当然ある
メモリが増えるなんて凄いメリットじゃん!と思うのですが、デメリットもあります。それは「ストレージ容量が減る」事と「ストレージの速度はメモリと比べると遅い」こと。
ストレージ容量として2.2GBをOSが使う部分として認識させておきますが、ストレージ容量が16GBだとアプリケーションや写真・動画を沢山入れる人には負担が大きく感じます。
またメモリの速度ってメチャメチャ早いんです。それに比べてストレージは1/10以下の速さでしか情報のやりとりが出来ません。このため、全体的な速度は遅くなります。
iOS9の挙動を見ていると仮想メモリ使ってる?と感じる
先にも言いましたが、iOS9はアプリが粘るようになったと感じています。ついでに、アプリの動作速度が以前よりも遅く感じる事もあります。(例えば、LINEはメッセージが届いて表示させようとした場合、画面が一旦ブラックアウトされて2-3秒してから表示されるようになった)
これは仮想メモリという概念が取り入れられた!と解釈すれば辻褄が合うんですよね。
何故、仮想メモリという概念が入ったか?
iPhone6Sは2GBのメモリを搭載、iPadProは4GBのメモリを搭載すると言われています。 現状、Appleがサポート対象としている端末のメモリは512MB(0.5GB)〜4GBまでのラインナップがあり、iOS9はこれら全ての端末を「同じように」動かす必要があります。
これを一気に解消できる手立てとして、仮想メモリを実装したと推測しています。
メモリ搭載量が少なくても、仮想メモリによって(遅いけど)きちんと動作すると。
この推測だと、iPadProの4GBは全てをメモリ内に搭載できるため、一番サクサクと動くと思われます。
iPhone6ではデメリットを享受する方が多いかも・・・
iPhone6をiOS9にアップデートして以来、OS自体の機能ではそう感じる事がないのですが、アプリを利用する場合にモッサリするようになったと感じる事が多いです。
但し、iPodとして起動した場合、アプリが沢山立ち上がっていても毎回最初の曲から再生される事が無くなったのは大きな強みです。(全くないわけではないです。意図的にいっぱいアプリ立ち上げて実験したらリセットされる事もありました。ただ、iOS8からしたら劇的に改善された)
自分の使い方に合わせてiOS9にアップデートするか?考えてみてください。