技術関係

【Gradleビルド比較】Mac mini(2018)とMacBookPro(2017)でどれくらい速度差が出るか試してみた

M1チップ搭載のMac miniが話題ですが、まだまだMac mini(2018)も健在です。

今回はKotlin + Spring BootのマルチプロジェクトでGradleビルド時間を比較してどれくらい差が出るかを実験してみます。

スポンサーリンク
スポンサーリンク

Mac mini(2018)とMacBook Pro(2017)でスペック比較

単純にCPU性能を考慮するとかなり差が出る予感がします。

ということでスペックを比較してみます。

Mac mini(2018)

  • CPU: Intel(R) Core(TM) i7-8700B 3.20GHz
  • メモリ: 32GB DDR4 2667 MHz

CPUは6コア12スレッド
https://ark.intel.com/content/www/jp/ja/ark/products/134905/intel-core-i7-8700b-processor-12m-cache-up-to-4-60-ghz.html

MacBook Pro(2017 13-inch)スペック

  • CPU: Intel(R) Core(TM) i5-7360U CPU 2.30GHz
  • メモリ: LPDDR3 2133 MHz 16GB

CPUは2コア4スレッド
https://ark.intel.com/content/www/jp/ja/ark/products/97535/intel-core-i5-7360u-processor-4m-cache-up-to-3-60-ghz.html

Macで自分のマシンが何のCPUを使ってるか調べるコマンド

ちなみに「このMacについて」ではプロセッサー・ナンバーは分からないのでコマンドで確認する。

$ sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz

並列処理

org.gradle.parallel=true

マルチプロジェクトで効果を発揮する並列処理を可能にする設定。
何も指定しなければ並列する処理の数はCPUのコア数に依存。

比較してみる

今回は下記の4つのコマンドを使用してみました。

  Mac mini(2018) MacBook Pro(2015)
./gradlew clean classes 55秒 2分22秒
./gradlew clean assemble 59秒 2分36秒
./gradlew integrationTest 5分7秒 11分26秒
./gradlew ktlintCheck 1分21秒 2分49秒

倍以上の差が付きました。すごいですね。
特にintegrationTest実行のような重い処理だと、早さを実感します。

スペックの低いPCでビルド待ちをしている時間がバカみたいに思えちゃいますね。

MacBook Pro

$ ./gradlew clean classes
Configuration on demand is an incubating feature.

BUILD SUCCESSFUL in 2m 22s
233 actionable tasks: 230 executed, 3 up-to-date

$ ./gradlew clean assemble
Configuration on demand is an incubating feature.

BUILD SUCCESSFUL in 2m 36s
337 actionable tasks: 334 executed, 3 up-to-date
$ ./gradlew clean integrationTest
Configuration on demand is an incubating feature.

BUILD SUCCESSFUL in 11m 26s
299 actionable tasks: 299 executed

$ ./gradlew ktlintCheck
~~~
BUILD SUCCESSFUL in 1m 21s
108 actionable tasks: 108 executed

Mac mini

$ ./gradlew clean classes
Configuration on demand is an incubating feature.

BUILD SUCCESSFUL in 55s
233 actionable tasks: 230 executed, 3 up-to-date

$ ./gradlew clean assemble
Configuration on demand is an incubating feature.

BUILD SUCCESSFUL in 59s
337 actionable tasks: 334 executed, 3 up-to-date

$ ./gradlew clean integrationTest
Configuration on demand is an incubating feature.

BUILD SUCCESSFUL in 5m 7s
299 actionable tasks: 296 executed, 3 up-to-date

$ ./gradlew ktlintCheck
~~~
BUILD SUCCESSFUL in 1m 21s
108 actionable tasks: 108 executed

まとめ

開発環境のPCのスペックはケチらないほうが良い。

あと、M1チップ搭載Mac miniが安定してきたら使ってみたいなーとは思う。
どれくらい早いんだろう。まぁしばらくはMac mini(2018)で全然戦えそうだからいいか。

参考

ベンチマーク種目等参考にさせてもらいました。
Apple M1は、Web開発でもクソ速い Kotlin & TypeScript編

コメント

タイトルとURLをコピーしました