Android デバイスが 6 GB の RAM に移行し始めると、私たちは次の質問を自問する必要があります。「本当に必要な RAM の量はどれくらいか?」 探索しながらフォローしてください。
最近、6GB RAM を搭載した Android を搭載した最初のスマートフォンの 1 つが発表されました。
なんと6GB! これは、モバイルデバイスに搭載されている RAM の容量が非常に大きいです。
数字ゲームを始めるのは、 Vivo Xplay5 エリート. Vivo という企業は中国以外ではあまり知られていないかもしれませんが、名誉のために言うと、同社は過去に非常に薄いスマートフォンをいくつか製造しています。 Xplay5 Elite では、彼らは王様の中に立つことを目的としたデバイスに多くのスペックを収めようとしました。
Vivo Xplay 5 Elite は、ボディの金属フレームにデュアルカーブ 5.43 インチ QHD Super AMOLED ディスプレイを備えています。 内部には、2.15 Ghz クロックの最新の Qualcomm Snapdragon 820 SoC、Adreno 530 GPU、6 GB の LPDDR4 RAM、および 128 GB の拡張不可ストレージが搭載されています。 カメラの場合、背面には f/2.0 の 16MP Sony IMX298 センサーが、前面には 8MP シューターが搭載されています。 これらの仕様とデバイスの金属製の構造を念頭に置くと、中国の消費者にとってさえかなりの価格がかかることは驚くべきことではありません。 4,288元(660ドル)という価格のこの製品は、手頃な価格のミッドレンジというよりは明らかに中国のフラッグシップです。
現在 6GB の RAM を搭載しているスマートフォンは Vivo Xplay5 Elite だけではありません。 あまり知られていない、新しく設立された中国の OEM である Vernee は、ミッドレンジのデバイスである Vernee Apollo を発売することで、消費者が膨大な量の RAM を利用できるようにすることを目指しています。
Vernee Apollo には MediaTek のハイエンド SoC、Helio X20 が搭載されます。 前述の6GBのRAM、128GBの内部ストレージ、21MP Sony IMX230リアカメラ、5.5インチ2Kディスプレイが搭載されます。 これらすべてを含めると、アポロの価格は 399.99 ドルになります。 私たちに送られたプレス情報には中国の価格や対象市場についての言及はなかったので、この携帯電話は依然としてかなりの謎に包まれています。
これらの電話はどちらも私たちに質問を求めます。 本当に必要 今RAMがそんなにたくさんありますか?
この質問に答えるには、Android がメモリ管理と RAM をどのように処理するかを理解する必要があります。 Mishaal は、Android のメモリ管理の複雑さを見事に説明しました。 前の記事、6か月経った今でもその関連性を維持しています。
"Android がメモリ管理を処理する方法は次のようになります。アクティビティが終了した後にすべてのプロセスを即座に強制終了するのではなく(たとえば、 ホームボタンを押してアプリを終了すると)、システムがより多くのメモリを解放するためにプロセスを強制終了する必要があるまで、プロセスはメモリ内に保持されます。 システムはどのプロセスを保持し、どのプロセスを強制終了するかをどのように決定するのでしょうか? LMK (ロー メモリ キラー) ドライバー。 すべてのプロセスには、ActivityManager サービスによって -17 ~ 15 の範囲の oom_adj 値が割り当てられ、プロセスの重要性に応じて oom_adj 値が動的に調整されます。 oom_adj 値が高いほど、メモリを解放するためにプロセスが強制終了される可能性が高く、値が低い場合は、プロセスが強制終了される可能性が低いことを意味します。"
"Android では、各プロセスを、実行を継続するために最も重要なものから最も重要なものまで 5 つのカテゴリ (フォアグラウンド、可視、サービス、バックグラウンド、空) に分類します。 各カテゴリに属するプロセスは、異なるレベルの空きメモリ残量 (LMK minfree 値と呼ばれます) で強制終了されます。 たとえば、デバイスの LMK minfree 値が「2560,4090,6144,7168,8192」(4k ページとしてリストされ、/sys/module/lowmemorykiller/parameters/minfree から読み取ることができます) に設定されている場合、デバイス 空きメモリが 32MB を下回ると「空」として定義されたプロセスを強制終了し、空きメモリが 28MB を下回ると「バックグラウンド」として定義されたプロセスを強制終了し、空きメモリが 28MB を下回るとフォアグラウンド アプリを強制終了します。 10MB (天が禁じます!) さて、これらの minfree 値は、最近のほとんどのデバイスでは一般的ではありません。メーカーは、デバイスに最適であると感じる方法に応じて、好みに合わせて値を微調整するのが好きなためです。 しかし、この簡単な説明から理解すべきことは、空きメモリが多ければ多いほど、重要なプロセスが強制終了される可能性が低くなるということです。"
Mishaal 氏が述べているように、実際の値は OEM ごとに異なるため、同様の仕様の異なる携帯電話でマルチタスクを実行すると、さまざまなエクスペリエンスが得られる可能性があります。 混合におけるもう 1 つの変数は、デバイス上のブロートウェアの量です。 TouchWiz のような大幅に変更された Android UX は、ストックに基づいて Android を上回る多くの機能を詰め込む傾向があります。 AOSP などでは、OEM が望むレベルで機能するには、より多くのリソースをシステムに割り当てる必要があります。 それを。 これにより、サードパーティのアプリがキャッシュされる余地が少なくなり、メモリ不足がさらに悪化します。
たいてい 柔らかい
"2GB RAM を搭載したデバイスと 3GB RAM を搭載したデバイスの主な違いは、3GB RAM を搭載したデバイスは の RAM は、LMK ドライバーをトリガーして停止することなく、バックグラウンドでより多くのプロセスをキャッシュできる必要があります。"
したがって、理論的には、ハードウェア レベルで利用可能な RAM が増えると、OS レベルでキャッシュされたプロセスが増え、OEM が利用できるプールが大きくなるはずです。 しかし、多くの場合、2 GB の RAM を搭載したデバイスであっても、システムとアプリが必要なものを確保した後でも、さらに多くの空き RAM が表示されます。 これは Mishaal の投稿と同じギャラリーで、さまざまなデバイスの空き RAM を比較しています。
ご覧のとおり、Nexus 5 や Nexus 6 などの最も軽い UI を備えたデバイスは、デバイス上で利用可能な空き RAM の割合が最も大きくなります。 その中で最も重い Samsung Galaxy Note 5 は 4GB の RAM と TouchWiz を搭載しており、アプリのキャッシュに使用できる RAM は約 1.7GB です。 このような大規模な空き RAM プールがあっても、Note 5 は、デバイスが積極的なメモリ処理に頼るマルチタスクの問題に悩まされていました。 これは、OEM が LMK 値を選択したためです。ハードウェア レベルで RAM を追加しても役に立ちません。 マルチタスクを改善するための Note 5 の修正には、実際にはこれらの LMK 値を微調整することが含まれていました。 Samsung の標準設定よりもマルチタスクに適しています。これは、次のことに重点を置いたデバイスにとっては皮肉なことです。 生産性。 したがって、RAM を増やすだけでは、デバイスが自動的にマルチタスクに適したものになるわけではありません。
再びギャラリーに戻ると、表示されている空き RAM の一部はすでにアプリ プロセスのキャッシュに使用されていますが、この一部は実際には何もせずアイドル状態のままです。 以下は、空き RAM が表示され、キャッシュされた RAM とアイドル RAM に分割されていることを示す、私の OnePlus One のスクリーンショットです。
アクティブなゲームからスワップアウトして、キャッシュされたプロセスを表示するオプションを選択するのにかかったわずか 1 秒のインスタンスでも、システムは実際に使用される RAM を削減するように機能しました。 これは、ゲーム (この場合は NFS No Limits) の優先順位が変更され、フォアグラウンド プロセスからバックグラウンド プロセスに移行したために発生しました。 これは、アクティブな使用中の RAM が 2.5GB から 1.9GB に変更され、NFS No Limits ゲーム プロセスがキャッシュされるため、OS のフローを常にスムーズに保つことを目的として行われました。 ゲームの優先順位が変更されたため、OS が実際により多くの空き RAM を必要とする場合、ゲームを強制終了できるようになりました。 ここではユーザーの操作は必要ありません。
この例のポイントは、システムとそのすべてのプロセスの優先順位付けにおいて Android のメモリ管理がどのようにより効率的に進化したかを強調することでした。 いつでもキャッシュされたままになるアプリの数は限られています。OS は、理想的にはキャッシュ プロセスで空き RAM 全体を使用しません。 空き RAM の一部はアイドル状態のままになります。 これは、プロセスが RAM 使用量を非常に迅速にスケールアップする必要がある場合に備えた仕様です。
OEM が個々の電話機に対して再度定義しているように、アプリ プロセスにも RAM 割り当ての上限があります。 によると 古いディスカッション投稿 Android フレームワーク エンジニア、Dianne Hackborn によると、 Javaヒープ ガベージ コレクションが開始される前に Java オブジェクトが存在する場所ですが、NDK を賢く使用することでそれさえも拡張できます。 簡単に言うと、これは、そのデバイス上で実行するアプリが使用できる RAM に最大制限があることを意味します。 古いデバイスの場合、このヒープは 24MB に設定されていましたが、最近のデバイスでは、デバイスの RAM の増加とハードウェア需要の増加により、サイズが増加しました。 アンドロイドの 互換性定義文書 のために アンドロイド6.0 OEM がこれらのヒープに設定する必要がある最小値について言及しています (セクション 3.7)。 比較のために、CM12.1 上の私の OnePlus One は、通常の Dalvik VM ヒープに対して 192 MB の制限を誇り、アプリケーション マニフェストで android: largeHeap=true を指定するアプリに対しては最大 512 MB を許可します。 理論的には、1 つのアプリがデバイス上で使用できる RAM は最大 512 MB までです。 さらに、他の必要なシステム プロセスのフリー フローを維持するために、ガベージ コレクションが開始されます。
ここで、アプリのヒープ サイズ制限と、優先度に基づいてアプリに割り当てられた LMK 値を組み合わせます。 OS は一定量の空き RAM をアイドル状態に保つよう要求しており、Android のマルチタスクがどのように機能するか想像できるでしょう。 動作します。 これは、ハードウェア、ソフトウェア、アプリ自体の間で多くの変数が関係する複雑なメカニズムです。 理論的には、最高のフラッグシップデバイスの可能性を最大限に活用しながら、最も基本的なデバイスでも機能できるように微調整されています。 実際には、これは完璧な世界ではないため、どちらも起こりません。 これは、4 GB の RAM を搭載したデバイスが 4 GB の RAM を搭載した別のデバイスと同等に動作するという保証がないことを意味します。 また、特定のしきい値を超えて RAM を GB 追加しても、それに比例してマルチタスク処理とメモリ処理が増加するという意味でもありません。
実践と未来
それで、最初の質問に戻りますが、 2016 年初頭にデバイスに 6 GB の RAM が本当に必要ですか? 私にとって、答えはノーです。
私が所有しているデバイスの大部分には 3GB の LPDDR3 RAM が搭載されており、そのうちの 1 つは 4GB の RAM を搭載しています。 また、マルチタスクに関しては、パフォーマンスに目立った違いはありません。 これは、最近の OnePlus X レビューのマルチタスク デモです。このデバイスは 3 GB の RAM と標準の Android ROM を搭載しています。
このデバイスでは、いずれのアプリも強制終了することなく、12 個のアプリ (アクティブなスクリーン レコーダーをカウントすると 13 個) の間で問題なく切り替えることができました。 リロードや再描画はなく、このエクスペリエンスは、再起動や手動でアプリを強制終了することなく、毎日の使用を通じて驚くほど一貫したままです。 一般の消費者は、実際の使用中にこれらの多くのアプリを積極的に切り替える必要はありません。
しかし、ユーザーがこれらの多くのゲームを切り替えたい場合はどうすればよいでしょうか? 同意ですが、上記の要因が影響して、切り替えができるのはせいぜい数ゲームだけです。 このような状況では、より多くの物理 RAM を搭載すると、デバイスはより多くのゲームを受動的にメモリに保持できるようになります。 しかし、この利点とは裏腹に、多くのゲームではマルチタスク時に強制的にリロードが行われることがよくあります。 彼らの目的は、ゲームの実行中に不正行為メカニズムがゲーム データを操作するのを避けることであるため、リロード/再同期/更新によって整合性チェックが再度実行されるようになります。 両者の意図は異なりますが、そのため、多くのゲームはマルチタスクを行うには適していません。
この素晴らしい RAM のメリットを最大限に活用できない要因が他にもいくつかあります。 デバイスの LPDDR4 RAM の 6 GB をすべて必要とするタスクまたは複数のタスクの組み合わせが見つかった場合、モバイル SoC の形でさらに大きなボトルネックが発生することになります。 確かに、Snapdragon 820 と Helio X20 はそれぞれの会社の主力プロセッサかもしれませんが、それでもモバイル SoC です。 そのため、発熱、熱放散、サーマルスロットリング、バッテリーなどの他の制限があります。 そのため、長期間にわたって大量の RAM を使用するほど集中的なタスクを行うには不適切な選択肢となるでしょう。 時間。 このような場合は、手に持つことを想定していないシステムを使用する方が良いでしょう。 生成できる熱と消費できる電力に対して、より自由な制限があるものです。
結局のところ、RAM の空き容量がどれほど多くても、アプリは依然として追い出されます。 それがメモリ管理の仕組みです。 RAM を大きくすることには、ヒープ サイズをさらに増やすと効果があるなど、依然として利点があります。 ビットマップアセットの強化 より高解像度のディスプレイで使用できるため、デバイスの QHD 解像度を超えることができます。 市場全体の傾向としてヒープ サイズの増加により、アプリケーションはより多くのことを実行できるようになります。 RAM がアンタッチャブルとしてロックされていない限り、RAM は常に何らかの用途で使用されます。 しかし、主力製品の画面が 1080p から 1440p の間をさまよっているように見えることを考慮すると、あと 1 ~ 2 年は 4GB が妥当な標準であると考えられるかもしれません。
結論として、私たちは次の質問に答えることができます。 本当に必要 今RAMがそんなにたくさんありますか? いいえ、そうではありません。 価格を低く抑える必要がある要素の 1 つとしてデバイスの場合、3 GB または 4 GB の RAM で十分に機能します。 価格をそれほど気にしないユーザーからの需要があるフラッグシップ製品の場合、将来の保証に問題はありません。 顧客として、まだその RAM をすべて使用するわけではないことに注意してください。
6GB RAM を搭載した携帯電話についてどう思いますか? 以下のコメント欄であなたのご意見をお聞かせください。