Androidの仮想RAMとは何ですか?
その他 / / March 16, 2022
の他に 巨大なカメラのメガピクセル と 高いリフレッシュレートのディスプレイ、スマートフォンの世界で最大のトレンドは仮想RAMのようです。 ダイナミックRAM拡張と呼ぶ人もいれば、拡張RAMと呼ぶ人もいます。 それが何と呼ばれるかに関係なく、考え方は同じままです。 ユーザーがストレージの一部をRAMとして使用できるようにして、マルチタスクを支援します。
このガイドでは、Androidのメモリ管理がどのように機能するか、および仮想RAMの概念がそれとどのように異なるかについて説明します。 Androidでも仮想RAMが必要かどうかを考えてみます。 それでは、それに取り掛かりましょう。
Androidでのメモリ管理の仕組み
まず最初に、Androidがメモリを管理する方法を理解することが重要です。 Androidには、3種類のメモリがあります。 最初はRAM、次にzRAM、最後にストレージです。 RAMは、すべてのアプリが実行される基本的なメモリモジュールです。 次に、予算のデバイスにUFSまたはeMMCのいずれかのオンボードストレージがあります。 最後に、zRAMがあります。 基本的に、zRAMはRAM内のパーティションです。
zRAMの背後にある考え方は、RAM上の優先度の低いデータが圧縮されてzRAM内に格納されるというものです。 RAMは通常のストレージよりもいつでも高速であるため、RAMの一部であるzRAM内に圧縮データがあると 圧縮と解凍の時間を数えても、ストレージからアクセスするよりも高速になります。
Androidで使用できる3種類のメモリを確立したので、OSがすべてを処理する方法を理解しましょう。 そのため、Androidはページング技術を利用しています。 それがどのように機能するかは、RAMがページに分割されることです。各ページは通常4KBです。 そのページが空いているかアクティブに使用されているかに関係なく、それらを組み合わせて、それぞれ使用済みRAMと未使用RAMを表示します。 次に、カーネルのタスクは、使用済みメモリを空きメモリに変換することです。 これは、それらの使用済みページのデータをストレージにシフトすることによって行われます。
ページングとは何ですか、それはどのように機能しますか
それがどのように機能するかを理解するために、ページの種類を理解しましょう。 ページは、クリーンページとダーティページの2つのタイプに分類できます。 クリーンなページには、変更されていないコピーがストレージスペースに保存されています。 一方、ダーティページには、ストレージに保存されているデータの変更されたコピーがあります。 さて、これは変更されたものと変更されていないものは何ですか? それをあなたの記憶の動的使用と呼びましょう。
変更されていないコピーは静的データですが、変更されたコピーは毎秒動的なデータ変更です。 Androidは、リソースに動的にアクセスしていないため、必要に応じてクリーンページを削除できます。 これは、RAMを解放し、より多くのRAMを利用できるようにするのに役立ちます。 少し技術的に聞こえるかもしれませんが、実際のアプリケーションを使用して理解しやすくしましょう。
Twitterを開き、フィードを参照してから、別のフィードに切り替えたとします。 TwitterはまだRAMにあります。 ただし、しばらく開かないと、優先度が低くなります。 後で何か新しいものを起動した場合、AndroidはTwitterが使用しているメモリを解放する必要があります。 つまり、その値とデータをストレージにシフトし、空き領域を提供します。 これが、Twitterを再度起動すると、最初に休止状態になったタイムラインが表示され、次に更新される理由です。 Facebook、Reddit、またはCalculatorやNotesなどの同様のアプリについても同じことが言えます。 これらのアプリは、データのコピーがストレージ内に静的に保存されるため、クリーンページを使用します。
さて、汚れたページについては、Spotifyまたはその他の音楽プレーヤーを検討してください。 プレーヤー内で音楽を開始し、アプリを開かずにバックグラウンドで実行し続けます。 ただし、メモリを動的に使用しているため、システムはそれを閉じることができません。 その結果、Androidはアプリを圧縮し、より多くの空きRAMが必要な場合にアプリをzRAMにシフトします。
仮想RAMとは
Androidがメモリを管理する方法を理解したので、疑問に思う必要があります。仮想RAM機能はどこにあるのでしょうか。 zRAMもRAMの一部であると言ったことを覚えていますか? 仮想RAMが機能する方法は、ストレージスペースにスワップパーティションを作成し、それを追加のzRAMとして使用することです。
zRAMはRAMにのみ保存されるため、圧縮して保存できるページ数には制限があります。 スワップパーティションを使用すると、実際のRAMでスペースを利用できるようにしながら、アプリを圧縮およびシフトするための追加のzRAMとしてストレージスペースを使用できます。
この機能は新しいですか
それで、これはすべて新しいのですか? まあ、そうではありません。 Linuxは最初からスワップパーティションを使用してきました。 Androidの場合、カスタムカーネルユーザーはSDカードを使用して、メモリ管理を改善するための追加のスワップパーティションを作成しています。
そのため、ブランドメーカーは、Androidスキン内に焼き付けられた同じ機能を提供しているだけです。 ただし、それは疑問を投げかけます。この機能が非常に役立つのであれば、なぜそれがAndroidのソースコードの一部になっていないのでしょうか。
仮想RAMは良いか悪いか
答えは、仮想RAM自体の非常に基本的な動作にあります。 この機能を使用すると、休止状態のアプリを圧縮してストレージに移動することで、デバイス上でより多くのアプリを実行できますが、それは良いことよりも害があります。 スワップパーティションは基本的にアクティブなアプリを保存しているため、読み取りと書き込みの感覚が高まります。
これは従来のストレージでは正常に機能しますが、フラッシュメモリの読み取りと書き込みの数には制限があります。 したがって、SWAPまたは仮想RAMを使用することで、デバイスストレージの寿命を技術的に短縮できます。
これもよく強調されています Androidの開発者ページ. 「Androidでは、他のLinux実装のようにストレージがスワップスペースに使用されることはありません。これは、頻繁に書き込むことができるためです。 このメモリが摩耗し、記憶媒体の寿命が短くなります。」 この別の例は、新しいAppleM1にあります MacBook。 これらのマシンは、AppleのSSDでスワップパーティションを使用しており、ユーザーは非常に多くの不満を持っています。
仮想RAMは重要ですか?それを使用する必要があります
基本的に、それはすべて、マルチタスクをどのように定義するかに依存します。 2つから3つのアクティブなアプリ間でジャグリングしている場合は、確かに、仮想RAMがそれを支援します。 ただし、5〜6個の非常にアクティブなアプリを切り替え続けると、仮想RAMはアプリをシフトし続けるため、何もしません。
基本的に、仮想RAM機能を使用すると、アプリの実行に使用できるRAMスペースを増やすことができます。 ただし、ストレージが犠牲になります。 デバイスを2年以上使用し続ける場合は、仮想RAMを使用してもあまり意味がない可能性があります。