【比較動画あり】Android OS 4.4 (KitKat) の新ランタイム「ART」は現状どうなの?

KitKat で切り替えることが可能になりました。

20131111-072451

Javaで書かれたコードがLinuxKernelと接する実行部分が「ランタイム」。

Android_will_never_be_the_same_again-_to_use_ART_-_Techglimpse

そんな「ART」てどんな特徴があるのか。

'ART' experiment in Android KitKat improves battery life and speeds up apps

Dalvik’s future replacement debuts in Android 4.4 KitKat

まとめると以下。

・仮想マシン「Dalvik」の代替。
・高速
・2年前より開発
・バッテリーの寿命向上
・AOT(Ahead-Of-Time)コンパイラ
・Dalvik は、JIT(Just-In-Time)コンパイラ

で、それぞれ、「実行時」と「事前」の違い。

実行時コンパイラ(Just-In-Time Compiler、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。実行中に中間言語コードをネイティブの機械語コードにコンパイルするもの。

事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)とは、アプリケーション実行前に事前にコンパイルするコンパイラのこと。実行時のコンパイルの必要を無くし、ソースコードから中間言語コードを生成した後に、ネイティブの機械語コードも生成してしまう方式。

KitKat上では、有効化した「開発者向けオプション」から「ランタイムを選択」で切り替えできる。

「ART」選択すると、再起動を促される。

20131111-073922

再起動直後に、インストールしているすべてのアプリが「事前」に最適化される。

20131111-080114

200個のアプリで20分くらいかかった。これのことか「事前コンパイル」。

アプリを起動してみると、速くなったのような気もするし、そうでもないような気もする。

比較動画がありました。

これも差がよく分かりませんw

こんな記事もあるけど、

Nexus 5(Android 4.4 KitKat)ではベンチマークスコアを50%アップ可能、ランタイム「ART」の実力 CPUスコアは2倍 | アプリオ

いくつかのベンチマークアプリで計測してみたけど微妙だった、速くなってるかどうかは。

現状のARTはAOTのしくみを入れただけというレベルで、コンパイルの最適化もJavaVMの実行環境としての最適化もまだ入っていません。

Android 4.4 のARTのコンパイルしたコードを見た感想 - 組み込みの人。 Android 4.4 のARTのコンパイルしたコードを見た感想 - 組み込みの人。

新しいAndroidのランタイム「ART」でアプリの動作が快適に | ReadWrite Japan 新しいAndroidのランタイム「ART」でアプリの動作が快適に | ReadWrite Japan

 

まだ使わないほうがよさげな雰囲気に見えるけども。

Introducing ART | Android Developers


関連ワード:  AndroidGoogleニュース評判開発