2018年12月2日日曜日

Chromiumのビルド高速化@Gentoo Linux

Gentoo Linuxを使っていて面倒なのがブラウザのアップデート。
CPUをフル稼働するから他に何もできないし、特にChromiumは丸一日くらいかかります。
そのせいで、先日の東京Node学園祭はわりと焦るハメになりました

そしてまたもアップデート(70.0.3538.110)がありました。
なぜか今回は三日三晩かけても終わらない


というわけで今日はビルド高速化のお話です。

空きメモリを増やす

ビルド中ずっとディスクがスワップでカタカタ言っているので、まずは空きメモリを少しでも増やすところから。

起動中のアプリを全て閉じるのはもちろんですが、Dropboxも100MB以上使うから一旦落とします。焼け石に水かもしれませんが。
他にも不要な常駐アプリを落としていきます。ネットワーク関連以外不要です。

ところで、Chromiumのドキュメントによると、システム要件は
最低8GBのメモリ(16GB以上を強く推奨)
とのことですが、今使っているマシンはのRAMはなんと4GB
はい。そもそも最低条件にすら達していませんでした。

でもめげない。

ビルドする項目を減らす

次にやったのは、ビルドする項目を少しでも減らすこと。
ChromiumのUSEフラグを見てみると、興味深いものが。
  • system-ffmpeg - Use system ffmpeg instead of the bundled one
  • system-icu - Use system icu instead of the bundled one
  • system-libvpx - Use system libvpx instead of the bundled one
というわけで、これらを有効にしてみます。

jumbo-build

さらにUSEフラグを見てみると、もっと興味深いものが見つかりました。
  • jumbo-build - Combine source files to speed up build process.
ほう。

調べてみるとJumbo / Unity Buildsというドキュメントが。
  • いくつかのソースコードを1つのファイルにまとめてからビルドする
  • ヘッダファイルが共通なことが多いから、いちいち毎回ヘッダファイルの解析をしなくても済む分高速化する
というわけで早速有効にしてみます。

ここの投稿のとおりchromium.confを設定して、いざビルド。

timeコマンドで測ってみたら、10時間ほどでビルドが終わりました。

まとめ


  • 不要なアプリは落とす
  • ビルドする項目を減らす
  • jumbo-buildフラグを有効にする

これで、システム要件に満たないマシンでもなんとかなるもんです。

0 件のコメント:

コメントを投稿