Talkin’ about !!!!!!!!!!!!!

行く先不明のlinux blog

XperiaXZがもっさりしていたのを改善した件

CCコネクトさんがボーナスもらった人々をターゲットにXperiaのやっすいやつを毎週大量に出してくださっている。そこで、いい加減死ぬほどもっさりしていたXperia Z3 compactの後継機としてXperia XZを購入した。ジャンクということだったけど、素人である自分には不具合の理由がわからないシロモノ。

使ってみた。

Z3compactと重さが変わらん!

石もそこそこ悪くないし、メモリも3GBだし、ここまで重いのはおかしいと思ったが、ロック解除はもたつくし、スクロールはガタガタ以前にしばらく待たないと開始すらしないし、とにかく挙動がおかしい。

そこで比較対象用としてXZsとXZ1を購入した(cyoマ

XZsはXZのハードウェアにメモリを1GBだけ足したような姉妹機(上位機種はXZ premium)、XZ1は石が高速化しさらに内部ストレージが64GBに拡大した正統後継機。ちなみにいろいろな観点からau版とsoftbank版を購入した。

比較
XZs。。。速い。すべての挙動が普通に速い。重たく感じる部分はどこにもない。
XZ1。。。ものすごく速い。普通というより積極的に動作が軽いと感じられる。少なくともiPhone7よりは軽い。

というわけで、DoCoMo版のXZs買って終わりにしようと秋葉原に行ったけど、保護ガラス浮きの物しか見つからなかった。イオシスでセールやってたけどXZで、XZsじゃなかった。仕方ないので設定で改善できるかどうか試してみた。

CPUがそもそも違うXZ1は比較にならないので、XZsと比較した時にハードウェア的に違うのはまずメモリ量だ。XZは3GB、XZsは4GB。キャリアの余計なアプリをくっつけられた国産スマホは起動しただけでメモリをドカ食いする。CPU-Zを使ってメモリ使用量を調べると、使っているメモリはほとんど同じため、残量がストレートに1GB違っていることがわかった。

どうもいろいろいじくって挙動を見ていくとXZは物理メモリの残り容量がが1GBを切るとOSで使っているメモリをストレージに退避させて空き容量を作っているようである。せべ手の作業が一度メモリにデータを読み込んでから同じ作業を繰り返すと楽々動くので、本来物理メモリ上にいなければならないサービスの類を再読み込みしなければならないためにロック解除やスクロールと言った動作がもたつくと見当をつけた。

rootを取っていればやるべきことは簡単でキャリアアプリをすべてキルしてしまうことが最善解なのだが、一般的にキャリアアプリはユーザーの不便に構わず勝手に起動し貴重なメモリに常駐してしまう。そもそもandroidは素であればメモリが2GBあればサクサク動くのであって、3GBもメモリがあるのに動かないというのは致命的な設計ミスである。極端な話、中華androidなんかメモリ1GBでも動いている。3GBで動かないというのはおかしい。




そこで開発者向けオプションで「アクティビティを保持しない」を有効にした、これは何かというと、バックグラウンドに回ったプロセスをキルする設定である。この設定を有効にすることで使っていないアプリが占有していたメモリは常に解放される。

CPU-Zで稼働中のメモリの空き容量を調べると、空き容量が1230MBまで増加した。およそ4割強の実メモリが常に待機状態になることになる。しかもこの空き容量は、実メモリから「本来は実メモリ上にいなくてはならない」プロセスを退避させて得られたものではなく、それらのプロセス込みの空き容量である。メモリ4GB機ほどではないものの、それでもそこそこの実メモリを確保することができた。この設定をしないと実メモリは気が付くと700MBくらいまで落ちている。あとはもうガタガタな動作が再起動するまで続くのである。

ついでにGPUレンダリングを「使用する」に、各種アニメーションスケールをX0.5に設定した。ここは見た感じのサクサク感とのすり合わせなどの項目なので適宜設定する。

この結果、がたつきは無くなった。不自然さを感じないところまでは動作するようになった。ついでにバックグランドプロセスの上限も4にしてみた。

というわけで、ヌルヌルサクサクとまではいわないまでも、なんとかXperia XZを「使いたくないとまでは思わない」ところまでサクサクにすることができた。やっぱりメモリがないといかんともしがたいな。。。



追記 開発者オプションの高速化オプションの中に「HWオーバーレイを無効」という項目があることに気づいている方も多いと思う。これ、スクロールのスムーズさに直接聞いてくる設定で、調べた限りXZ1はHWオーバレイを無効にされてしまうとスクロールがガタガタになって使い物にならなくなる。設定してその場でスクロールして、変化なければ設定せず、動作が改善するならONに、がたついて使い物にならなくなったらやはり設定しないとするのが良いと思う。ほとんどの場合変化はないと思うが、効いてくる機種もたしかにあるので設定時に挙動の検証が必要である。

追記 メモリが足りない件、Chromeの場合、タブを二枚開くともうスクロールがガタガタになることを確認した。タブは常に1枚のみで使うとまぁ、サクサク。