Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> LinuxシステムのDalvikヒープメモリ管理とリサイクルの紹介

LinuxシステムのDalvikヒープメモリ管理とリサイクルの紹介

  

LinuxシステムのDalvik仮想マシンはAndroid向けに最適化処理を行うことができます。ヒープメモリの管理とリサイクルはシステムを最適化するための重要な手段です。この記事では、LinuxシステムにおけるDalvikヒープメモリの管理とリサイクルについて紹介します。

Androidシステムは

Androidシステムが起動した後、最初の受精卵のDalvik仮想マシンを作成するためのプロセスがあるでしょう、それが唯一のヒープを維持して開始します。後で起動されるすべてのアプリケーションプロセスはZygoteプロセスによって分岐され、どちらも独自のDalvik仮想マシンを保持します。アプリケーションの作成プロセスでは、Dalvik仮想マシンはCOWポリシーを使用してZygoteプロセスのアドレス空間をコピーします。

COW戦略:初め(Zygoteプロセスのアドレス空間がコピーされていないとき)、アプリケーションプロセスとZygoteプロセスは、オブジェクトの割り当てに使用されたのと同じヒープを共有します。 Zygoteプロセスまたはアプリケーションプロセスがヒープに書き込むと、カーネルは実際のコピー操作を実行し、Zygoteプロセスとアプリケーションプロセスに独自のコピーを作成させます。これをCOWと呼びます。コピーは非常に時間がかかるので、できるだけコピーやコピーを避けてください。

これを実現するために、最初のアプリケーションプロセスが作成されるときに、使用されていたヒープメモリの部分が一部に分割され、未使用のヒープメモリが別の部分に分割されます。前者はZygoteヒープと呼ばれ、後者はActiveヒープと呼ばれます。これは、zygoteヒープの内容をアプリケーションプロセスに単にコピーするだけです。将来的には、それがZygoteプロセスであろうとアプリケーションプロセスであろうと、オブジェクトを割り当てる必要があるとき、それらはすべてActiveヒープ上にあります。これにより、Zygoteヒープへの書き込みをできるだけ少なくすることができるため、コピーオンライト操作を実行する必要性が少なくなります。 Zygoteヒープに割り当てられるオブジェクトは、主にZygoteプロセスが起動時にプリロードするクラス、リソース、およびオブジェクトです。つまり、これらのプリロードされたクラス、リソース、およびオブジェクトは、Zygoteプロセスとアプリケーションプロセスで長期間共有できます。これにより、コピーが減り、メモリ要件が減ります。

JVMと同様に、Dalvik仮想マシンもヒープメモリ内のオブジェクトの管理を担当する必要があり、マークアップクリーンアップアルゴリズムを使用しますが、詳細は少し異なります。前のページ12次のページ合計2ページ

Copyright © Windowsの知識 All Rights Reserved