BT

Android N、AOT・インタプリタ・JITの組み合わせを導入

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2016年4月11日. 推定読書時間: 2 分 |

原文(投稿日:2016/03/31)へのリンク

インストール時間、メモリフットプリント、バッテリー消費、パフォーマンスを最もうまく両立させるため、Android Nはコンパイラ、インタプリタ、JITを使ったハイブリッドランタイムを導入する。

Android KitKatにプレビューとして導入され、Lollipopでデフォルトになった主要機能の一つが、ARTという(当時の)新しいランタイムだった。ARTはDalvikを置き換えたが、DEXファイルを実行しておりバイトコードに互換性があった。ARTの主たる特徴の一つは、アプリケーションインストール中のAOTコンパイルだ。その主なメリットは、高性能で低消費電力で実行できるよう最適化されたネイティブコードにあった。その一方で、欠点は容量とインストール時間にあった。LollipopとMarshmallowでは、大きなアプリケーションのインストールに何分も必要になるのだ。

Android N Developer Previewにはハイブリッドランタイムが含まれている。インストール中にコンパイルすることなく、アプリケーションは即座に起動し、バイトコードが解釈される。ARTには高速な新しいインタープリタが搭載されている。それには新しいJITがついているが、JIT情報は永続化されない。その代わり、コードは実行中にプロファイルされ、そこで得られたデータが保存される。後でデバイスがアイドル状態で充電中のとき、ARTはコードのホットセクションにプロファイルベースのコンパイルを実行する。その他の部分はそのままだ。最適化されたコードを生成するために、ARTはディープインライニングを含む複数のテクニックを用いている。

以後、アプリケーション実行中に、プロファイラが新しいホットなコードパスを見つける、あるいは、すでにコンパイルされたコードに新たな最適化を適用することで、同じアプリケーションに対して複数回コンパイルプロセスが適用される可能性がある。簡単のために、この手順は引き続きAOTと呼ばれているが、All-Of-the-Timeコンパイルと読んでも差し支えないだろう。

このAOTとインタープリタとJITをミックスした戦略には、全体として次のようなメリットがある。

  • 大きなアプリケーションであっても、インストール時間が数秒に削減される
  • 最適化ステップが必要ないため、システムアップデートが高速になる
  • アプリケーションのRAMフットプリントが小さくなる、場合によっては50%まで下がる
  • パフォーマンスの改善
  • バッテリーの低消費

コンパイル中に適用される最適化について、詳しくはポッドキャスト「Episode 45: State of the ART」がオススメだ。ゲストとしてAndroid ARTチームのリーダーBrian Carlstrom氏とAndroid PlatformのエンジニアリングディレクターAnwar Ghuloum氏が登場する。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT