5000円でandroid 4.0 (ICS)を20分でビルドできるマシンを調達する方法

1時間とかかかってしまう事で有名なICSですがもっと高速にビルドしたい!

「12 Core 128Gメモリーでやると20分でビルドできる!!m9」とか
恐竜先生(id:androidzaurus) とか @noritsuna さんがいっていたので僕もやりたいと思ったのがきっかけ。

マザボとCPUとメモリだけで軽く25万近い。
そんなマシン買えない。

そんなところにさくらのクラウドがサービスインしたのでこれを使いました。
利点は

  • 12Core 128Gメモリのマシンが借りれる
  • 1日4500円で1日からOK
  • テンプレート OR HDDにして保存しとけば毎回環境作らなくていい
  • いらなくなっても捨てなくていい
  • ハードウェアトラブルとは無縁
  • 組み立てなくていい
  • ネットワーク上にあるのでどこからでもアクセスできる
  • 基幹回線なので一般回線より高速にrepo syncできる(jオプション無しで15分くらい)


ビルド後のバイナリ必要な所は200Mもないのでむしろ家に置くとかより便利。
すごいぞ強いぞ、さくらのクラウド!!

効果測定

じゃぁ実際どのくらいの強さなのか測ってみよう。
ついでにオプションとかビルド補助高速化ツールも試してみた。

まずビルド時間

家のマシン
4core 4G MEM $ make -j12
1時間52分49秒
モンスター
12Core 128G $ make -j36
20分39秒

圧倒的過ぎる。

ccash使ってみた編

今まで使ったことのなかったccashも使ってみた
知らない人のために説明しておくとc,c++コンパイラコンパイル結果をキャッシュするものです。
使うためには以下のようにするといいです
>||sh||
$ export USE_CCACHE=1
$ export CCACHE_DIR=/<キャッシュを置くディレクトリ>/.ccache
$ prebuilt/linux-x86/ccache/ccache -M 20G
|

ビルド結果

初回(キャッシュされてない状態)
23分35秒 (15%低速)
cache hit 1146
cache miss 14658
repo initからやり直し
20分27秒 (5%高速)
cache hit 4251
cache miss 9225
make cleanしてmake
11分57秒(40%高速)
cache hit 15622
cache miss 18

自作でやるとこうなる

ちなみに昔家にXeon 2.4G×2CPUのマシン作ったけ以下のような問題があって

  • うるさい
  • 電気代が上がる(ノートPCメインと比較して2000円/月ぐらい)
  • 一年したら7,8万ぐらいのマシンに負ける
  • でかくて邪魔

この辺の対策としても良いのではないかと思います。

おわりに

話を聞くと「勉強会でマシンが貧弱な人が付いて来れない」とか
「20万以上のマシンは導入すると固定資産になるから経理がXX」とか
「情報システム部がXX」とかって言う人たちもいるようなので
結構こういう需要があるのではないかとおもいました。

androidで個人の人たちでリリースが着てしばらくシェアで
借りるとかやりたい人がいたら一緒にやりませんかね?


最後によくなると良いなというポイントをいくつか
「マシン削除して安いマシンにHDDを載せ変えたときのethの設定がわからなかった」
「そもそも一日としてカウントするのは時間なのか特定の時間にマシンが存在しているなのか」
この二つは分かりやすい所に書いてあるほうがいいです。