Gradle Profilerを使って、ビルドを最適化する

開発を高速化するために、ビルド速度を改善することは重要です。 Gradleの設定を見直すことで、ビルド速度を改善できる可能性があります。

この記事では、Gradle Profilerを使って、自分の環境において最適そうな設定を見つける方法を紹介します。

Gradle Profilerとは?

Gradle Profiler は、Gradleのプロファイリング、ベンチマークを計測してくれるツールです。

Gradle Profilerを使うことで、最適なGradleの設定を見つけだすことが出来ます。

良さそうな設定を見つける

まず、最初にシナリオファイルを作成します。これは、Gradle Profilerを実行する際に必要なファイルで、記述したシナリオ通りに実行してくれます。

今回は、次のようなシナリオを作りました。

# scenario.txt
clean_build_2gb_2workers {
    tasks = [":app:assembleDebug"]
    gradle-args = ["--max-workers=2"]
    jvm-args = ["-Xmx2048m"]
    cleanup-tasks = ["clean"]
}

clean_build_4gb_4workers {
    tasks = [":app:assembleDebug"]
    gradle-args = ["--max-workers=4"]
    jvm-args = ["-Xmx4096m"]
    cleanup-tasks = ["clean"]
}

このシナリオでは、worker数と、メモリの値をそれぞれ設定しています。

このシナリオは、Gradle Profilerコマンドを使って、次のように実行できます。

gradle-profiler --benchmark --project-dir . --scenario-file scenarios.txt

これを実行すると、ビルドにどれくらい時間が掛かったかの出力してくれます。



この結果から、僕の環境 + このプロジェクトの場合、2GB、2workerよりも4GB、4workerで設定したほうが良さそうなことが分かります。

このようにして、Gradle Profilerを使うことで、自分の環境において、最適そうな設定を探すことが出来ます。

まとめ

今回は、Gradle Profilerを使って、ビルドの高速化をする方法を紹介しました。 今回は単純なシナリオを使いましたが、他にもGCの設定を変えるとか、細かい設定があると思うので、そこのあたりもシナリオに入れて計測してみると良いと思います。

また、シナリオの実行にはめちゃくちゃ時間が掛かるので、夜とか、パソコンを触らない時間に実行すると良いと思います😃

参考

Written by