Android Lollipop、ARTはDVMよりも高速であるため、GoogleはDVMをARTに置き換えました。他の理由はありますか?
いくつかの主要なARTがもたらすパフォーマンスの改善があり、それらはDalvikには欠けていました。しかし、すべての長所には短所もあります。ここで、長所と短所の両方について説明します。
これは、Dalvikに対するARTの最大の利点です。 老人のDalvikはJust-In-Time(JIT)アプローチを使用しましたオンデマンドでコンパイルが行われました。すべてのdexファイルは、必要な場合にのみ、それぞれのネイティブ表現に変換されました。
ただし、ARTはAhead-Of-Time(AOT)アプローチを使用で、dexファイルは要求される前にコンパイルされました。これ自体が、あらゆるAndroidデバイスのパフォーマンスとバッテリー寿命を大幅に改善します。
たとえば
Dalvikの場合、アプリのアイコンをタップして開くと、必要なdexファイルが同等のネイティブコードに変換されます。このコンパイルが完了すると、アプリは動作を開始します。そのため、これが完了するまでアプリは応答しません。
さらに、このプロセスは、CPUサイクルと貴重なバッテリージュースを浪費するアプリを開くたびに繰り返されます。
しかし、ARTの場合、アプリをインストールするたびに、すべてのdexファイルが一度だけ変換されます。そのため、インストールには時間がかかり、アプリはDalvikよりも多くのスペースを必要としますただし、パフォーマンスが大幅に向上し、バッテリー寿命が大幅に節約されます。
Dalvikの場合、キャッシュはデバイスの実行時に構築され、JITアプローチで示されているようにアプリが使用されます。 したがって、起動時間は非常に高速です。
ただし、ARTの場合、キャッシュは最初のブート中に構築されるため、ARTの場合はブート時間がかなり長くなります。起動時に「アプリの最適化」ダイアログボックスが表示される場合があります。
ARTで実行されているアプリが使用するスペースは、Dalvikのスペースよりもはるかに大きいです。 Dalvikの20 MBアプリのように、ARTでは35 MB以上かかります。
低記憶装置を使用している場合、これは大きな不利益になる可能性があります.
上記で説明したように、ARTは非常に高速でスムーズです。アプリは非常に機敏で応答性に優れています。 DalvikとARTを比較すると、確実にARTデバイスが大幅に勝ちます。
[〜#〜] art [〜#〜]はすべての答えですiOSはAndroidよりも高速でスムーズであり、バッテリー効率も高いと主張した人々。
Android Lolipop、DVMはARTに置き換えられました。DVMは特定のアプリを起動するたびにバイトコードを変換するためです。しかし、ARTはアプリのインストール時に一度だけ変換します。 ARMはアーキテクチャです。MIPSやx86などのように、DVM/ARTはARM上で実行されます。両方とも互いに置き換えることはできません。これで混乱が解消されることを願っています。
Android 4.4 KitKat、GoogleはAndroidオペレーティングシステム上でアプリを実行する新しい方法を導入することにしました。この新しいランタイム([〜#〜] art [〜#〜]
ARTは、GoogleのAndroidデバイスのパフォーマンスを向上させることを目的とした、2年間にわたる進行中の秘密プロジェクトです。
Android L(5.0)ARTがデフォルトのランタイムとして作成されました(ARTはDalvikを完全に置き換えました)。
ART(Android RunTime)は、Dalvikの次のバージョンです。 Dalvikはランタイム、バイトコード、およびVM Android実行用システムAndroidアプリケーション。
DalvikはJIT(ジャストインタイム)コンパイルに基づいています。つまり、アプリを実行するたびに、その実行に必要なコードの一部がその時点でマシンコードに変換(コンパイル)されます。アプリを実行すると、追加のコードがコンパイルされてキャッシュされるため、アプリの実行中にシステムがコードを再利用できます。 JITはコードの一部のみをコンパイルするため、メモリフットプリントが小さくなり、デバイス上の物理スペースが少なくなります。
ART vs Dalvik/AOT vs JIT
Dalvikに対するARTの利点:
ARTの欠点
大規模プロジェクトの1つであるNexus 4のインストール時間は、〜17 sから〜25 sにジャンプしました。
Dalvik対ARTベンチマーク結果(Android 4.4):Linpack
シングルスレッド--->Dalvik(135)--->ART(149)--->10.93%
マルチスレッド--->Dalvik(336)--->ART(383)--->13.82%
Android 4.4以降のバージョンでは、Dalvikとともに、Googleは「ART」と呼ばれる新しいAndroidランタイムを導入しました。
ARTとDalvikの違い
ART(Android RunTime)の主な機能はAhead-of-Time(AOT)コンパイルです。
AOT vs JIT
Androidアプリの形式は.apkであり、すべてのJavaクラスはDEXバイトコードに変換されます。 DEXバイトコード形式はデバイスアーキテクチャに依存しないため、デバイスで実行するにはネイティブマシンコードに変換する必要があります。これは、ARTランタイムとDalvikランタイムの両方で同じです。
主な違いは、ART(Android RunTime)はAhead-of-Time(AOT)コンパイルを使用し、DalvikはJust-in-Time(JIT)コンパイルを使用していることです。
Dalvikでは、アプリを実行するたびにジャストインタイム(JIT)コンパイルが行われ、dexバイトコードをマシンコードに変換してキャッシュします。
詳細はこちらをご覧ください http://androidboost.over-blog.com/2016/10/art-vs-dalvik.html
ART vs DVMの詳細をカバーする投稿です。 https://ayusch.com/art-vs-dvm-in-Android/
stackvsregisterベースのアーキテクチャ(DVMはレジスタベース)、また、AOTコンパイルが事前に実行されるコードをコンパイルすることでARTをDVMよりもはるかに高速化した方法。