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
MacBook Pro(2017 13-inch)スペック
- CPU: Intel(R) Core(TM) i5-7360U CPU 2.30GHz
- メモリ: LPDDR3 2133 MHz 16GB
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編
コメント