Kotlin – Gradle Daemonサポートによるコンパイル高速化

投稿日 投稿者 Yusuke

Kotlinのチームはコンパイル時間改善の作業を続けています。Kotlin 0.12.1230ではGradle Daemon機能を使うようになりましたのでお試しください。起動コストがなくなりし、ビルドが早くなります。

バックグラウンド

kotlincの実行時間の中でも、コンパイラのクラスをロードし、ウォームアップする時間は特に掛かります。そこでコンパイラインスタンスを繰り返し使い回して最適化するという方法にたどり着きました。

他のJVMベースのツールも同様の問題があるためGradleはクラスロード時間やJITコンパイル時間を不要にするためのロングランニングプロセス – Daemon機能があります。

お試しください

KotlinのコンパイラでGrade Daemonがうまく使えない問題を解決しました。Gradle 2.4以上安定して動作するはずです(Gradleのアップグレード方法について詳しくはこちらをご覧ください)。Android Studioはデフォルトでデーモンを使いますので単にbuild.gradeファイル内でKotlinのバージョンとして“0.12.1230″を指定すれば有効になります:

buildscript {
  repositories {
    ...
  }
  dependencies {
    classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.1230'
    ...
  }
}

注: 高速化の恩恵を最大限に受けられるのはビルドを数回行ってからになります。最初はコールド状態からのスタートとなり、二回目でほとんどのウォームアップが完了します。それ以降のビルドではJITコンパイラによる最適化で少し早くなります。

フィードバック

プロジェクトのビルドがどれくらい早くなったのか(行数と実際のビルド時間など)をお知らせ頂ければ幸いです。

原文