ChatWork Creator's Note

ビジネスチャット「チャットワーク」のエンジニアとデザイナーのブログです。

コスパのよいScala開発マシンを求めて

ごきげんよう、かとじゅんです。

某社のiMac Pro 138台導入の件はブルジョア感がハンパないですね…。それとは少し違う方向性で、Scalaのビルド効率化をテーマとして、今回は最新のパーツで自作マシン(OSはUbuntu)を組んでみました。そのマシンとMacとでコスパ比較してみたのでレポートします。

ハードウェア構成

ハードウェア構成は以下です。チップセットはIntell Z370で、CPUはCore i7 6コア(Coffee Lake)です。メモリは64GBです。費用は24万ぐらいです。今回は定格クロックである3.7GHzから5GHzにオーバークロックするので、CPUクーラーは簡易水冷を選びました。

ASUS Intel Z370搭載 マザーボード LGA1151対応 PRIME Z370-A【ATX 】

ASUS Intel Z370搭載 マザーボード LGA1151対応 PRIME Z370-A【ATX 】

AINEX Slimfan PWM対応 [ 120mm角 ] AK-FN078A

AINEX Slimfan PWM対応 [ 120mm角 ] AK-FN078A

簡易水冷のラジエターファンと光るメモリ! f:id:j5ik2o:20180612144057j:plain

ケース上部からみるとこんな感じ。 f:id:j5ik2o:20180613155835j:plain

外観 f:id:j5ik2o:20180613161606j:plain

ベンチマークとコスト

Geekbench4のベンチマークと初期コストを比較してみました。iMac Pro以外は実際手元にある実機で試しています。Mac Pro 2013はMacBook Pro 2015とほぼ変わらないベンチマークですね…。悲しすぎる…。まぁ、それはどうでもいいとして、本題の自作機(Ubuntu)とiMac Proもほぼ同じぐらいの実力ですね!

モデル Single Core Multi Core 費用
MacBook Pro (15-inch Retina Mid 2015)
Intel Core i7-4980HQ 2800 MHz (4 cores), 16GB, High Sierra
4126 14338 32万
Mac Pro (Late 2013)
Intel Xeon E5-1650 v2 3500 MHz (6 cores), 64GB, High Sierra
3982 19556 58万
iMac Pro (Late 2017) 3.0GHz,10 cores, High Sierra 5219 35045 80万
自作機
Intel Core i7-8700K 3699 MHz (6 cores) 5GHz OC, 64GB, Ubuntu
6590 31053 24万

コンパイル時間

開発中のScalaコード(23万行ぐらい)をsbt(1.0.x)からコンパイルした時間の差異です。うは、こんなにもビルド時間 違うのか…。ビルド時間が半分ぐらいになった

モデル コンパイル時間
MacBook Pro (15-inch Retina Mid 2015)
Intel Core i7-4980HQ 2800 MHz (4 cores), 16GB, High Sierra
60.82sec
Mac Pro (Late 2013)
Intel Xeon E5-1650 v2 3500 MHz (6 cores), 64GB, High Sierra
60.03sec
自作機
Intel Core i7-8700K 3699 MHz (6 cores) 5GHz OC, 64GB, Ubuntu
24.10sec

まとめ

ビルド時間だけみれば、最新パーツのLinuxマシンの方が全然安くて速い。最近はScalaだけじゃなく、minikubeなどにメモリを与えることが多くなってきたので、これぐらいのスペックは欲しいところです。今回の予算は控えめでしたが、もう少し予算を上げてCore i9やメモリ128GBにしたりしてもよいかも(笑) 1PasswordやOfficeを利用したいということであれば、Macと併用でもありですね。

まぁ自作機は初期コストは安いけど、故障したときに面倒というのはありますね。自作派としては、パーツが壊れたら新しいものに交換するぐらいの想定は必要ですね。今後は、二号機以降も要望に応じて作るかもしれないです。ChatWorkに入社したら僕のビルドした自作マシンも開発に使えますよ。エントリは こちら から お待ちしております!