スマホさくさくに対するメモリ開放アプリに期待して良い所、勘違いなところ


ネットや yahooのさくさくアプリなどで、メモリ(RAM)を解放すればさくさくするという図式が良く表現されていますが、ちょっと違うのではないのかな?と思ってました。手段と効果がマッチしていません。今回そのよくある勘違いや期待して良い効果について、説明してみようと思います。

【前半】そもそも仕組みはどうなっているか?

重いとはどういう状態?その時は、どこがネックになっている?

まず、いろんな重い状態があるのでそれをリストアップしてみます。

  • ネットワークが遅かったり、混んでいたりして、ブラウザ等が表示されない状態
  • 3Dゲーム等で計算量が多くて、重い状態
  • メモリが小さい、またはアプリ起動時に同時に使うメモリが多過ぎで、ストレージに一瞬退避保存する分、動きが引っかかる動作になる状態

①番目はネットワークが遅いです。アンテナなのか、基地局なのか、プロバイダーなのか、サーバなのか色々ポイントが有ります。ドコモで契約していれば前者3つがドコモの中になります。格安SIMであれば、インターネット接続口であるプロバイダー周り や(and/or) その周辺設備をその業者が管理して対応していると思います。
smartphone_nw-min

②番目はCPU/GPUが足りていないほど高機能な計算をしている状態です。

③番目はメモリが小さい(アプリがメモリを使いすぎる)状態です。

memory_over-minおそらく、③番目だけメモリ解放と関係ありそうだとわかると思います。もう少し深く具体的に③のパターンをわけてみます。

  1. これから起動するアプリのメモリが足りてない時
  2. これから起動するアプリのメモリが足りている時
    1. 空きスペースが十分な場合
    2. 空きスペースがないが、使っていないアプリを削除すれば空く場合
    3. 空きスペースもなく、使っているアプリを削除できない時

それぞれ重い時の対策は?

①の対策は、

もっと速いサーバかプロバイダーにする、電波のいいところに移動する、高速なwifiに切り替えるなどで対応できます。

②の対策は、

もうスマホを早い機種に買い換えるかアプリを諦めるしかありません。

③の対策は、

1の時:メモリを増強することです(ストレージではありません)。メモリが全く足りない場合、これ以上開放できないため、ストレージに退避しながら(遅い処理があるため)、カクカク しつづけるはずです。今回のアプリが例えば1GBのメモリしかないところに、1.2GBも使おうとしたら、カクカクし続けます。メモリ退避やプロセス削除でもどうすることもできません。普段人が遅いと感じるのはこの時です。

2-aの時:何もせず問題なく動きます。もう一つのメモリが専有されている場合。それでも、0.8GBとかの使用量であれば実メモリより小さいため、以前のアプリデータ分を退避しメモリ容量を確保した後今回のアプリが動けます。つまり重いものを動かす前は、不要なアプリを停止するだけ。

2-bの時:アプリを削除すれば、 2-aと同じようになるため、問題なく動きます。ただバックグランドでこの処理が起きると、表のアプリが一瞬カクつきます

2-cの時:起動はしたままだが、今使わないのであれば Androidが自動的におそらくストレージ領域に退避し、何もしなくても、問題なく動きます。この時一瞬だけ引っかかるように感じるかもしれません。ただ人がわざわざアプリでメモリを開放してもしなくても影響はないです。

つまり、メモリ解放により重かったスマホがサクサクするのは、③の2-bのケース(余計なプロセスが削除できるとき)のレアなケースだけ効果があることになります。yahooのさくさくアプリはアプリ停止を支援するツールのようです。

【後半】それは効果あり?それともナシ?

期待して良い効果

期待して良いケースは、2-bのように先ほどたくさんアプリを開いた、またはメモリ(データ)を沢山使うアプリを開いていたあとにこれからデータ量の多い重いアプリを開く時です。しかも対応方法はメモリ解放ではなく、プロセス削除です。

期待が見込めない効果

①、②のネットッワークやCPUがネックの時に、メモリ開放しても変わらないことになんとなく気づいていたと思います。

③の 1,2-a,2-cの時も、メモリ解放による効果がありません。 2-a,2-cは一瞬だけカクッとすると思いますが、1のケースについてはずーとカクカクしっぱなしです。実行時にしょっちゅうメモリ退避や入れ替えしなくてはならなくなり、その時人は遅いと感じます。

よくある勘違いその1

よくある間違いが、「メモリをたくさん使っている」から重いと判断することです。メモリを使っていても足りていれば重くなりません。そもそも「必要だからメモリを使っている」のであって、もしなければ処理が止まります(重いゲームや画像をいっぱい開いた時にこれが原因でさらにエラー処理がないと、もしかしたら落ちると思う)。

マルチタスクのOSでは、FacebookやLINE,アラームや通知などのようにバックグラウンドで動くものがあります。その時、空きメモリがなければ、2-cのようにメモリのswapがちょこっと発生します。10個バックグランドプロセスが起動し毎回空きメモリが足りなかったら10回ひっかかる動作になります。そのためそういう時に、空きメモリが多ければ軽いと感じかもしれません。ただ正確には軽いのではなくスムーズに動き続けるが正しい言い方です。

バックグラウンドアプリが動く分で遅くなるのであれば、そもそもメモリが足りていないということなので、メモリ解放しても足りていない状態にはかわりはありません。(ずっとカカッ、ッカッっとカクカクし続ける)

よくある勘違いその2

メモリ解放で動作がサクサクするは間違いです。不要なアプリを停止・終了させ、メモリ上から追い出すことが正解です。メモリ解放を手動ですることは逆に負荷をかけることもわずかですがあるため、あまり素人がやっても効果がうまく見込めません。

動いているアプリのメモリを解放した(解放できた)場合、そちらのアプリが動けばまたデータを用意し直すため無駄な動きが発生し、同じ事象が発生し余計カクカクし元の状態に戻ります。なので必要なとき以外、アプリの動作をよく知らないユーザが不必要にメモリ解放する必要はなく、本質的にはアプリを落とすだけで十分です(Android OSなどが自動でメモリ解放をやってくれるので)。

メモリを開放しなければならないケースは、アプリの作りかOSの作りが悪いだけですので、一般の人はメモリ解放ソフトは必要ないです。

今日のOSは大雑把に言うと一般的に、プロセス(アプリ)が落ちればメモリは全部開放されます。

よくある勘違いその3

ちなみに、キャッシュはメモリではなく(メモリ上もキャッシュという時はありますが)、今回の説明で言うAndroidキャッシュはストレージ上に確保されているため、ストレージ容量に関係があります。メモリには関係ありません。

よくある勘違いその4

アプリのインストールはストレージ上にされます。アプリを起動しなければメモリに載せないため、アプリをたくさん入れてもメモリに影響することはそれ自体ではありません(バックグラウンドプロセスで起動する可能性は増えますが)

まとめ

上記のように、重い時にメモリ解放で動作がさくさくするケースは基本ないことと、出来る対策は不要なアプリの終了だけということです。

ということを共有したかった。。おかげで、頭の中のもやもやが整理されました。 windowsの頃から不思議でしょうがなかったこのメモリさくさく信仰。言葉でうまく表現できたかな?

Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Delicious
Bookmark this on Digg
Share on reddit
Share on LinkedIn
Bookmark this on @nifty clip
LINEで送る
email this
Pocket




One thought on “スマホさくさくに対するメモリ開放アプリに期待して良い所、勘違いなところ

  1. 2016/08/05 at 17:39

    スマホさくさくに対するメモリ開放アプリに期待して良い所、勘違いなところ https://t.co/okXVOk5oiE @naturalluckyさんから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です