C/C++やObjective C、Objective C++で開発されたアプリケーションを分散コンパイルできるようにするためのツールにdistccがある。distccを使うと、distccがインストールされたマシンの間でビルドを分散して実行するようになるため、ローカルでビルドする場合と比較して大幅にビルド時間を短縮できる。
distccはもともとの開発者であるMartin Pool氏が2004年に公開したdistcc 2.18.3を最後にアップデートが実施されてこなかったが、今回GoogleのBuild Tools Teamによって改良された最新バージョンdistcc 3.0が公開された。従来のdistcc 2.18.3と比較してビルド時間がさらに短縮されているところに大きな特徴がある。
もともとGoogleでは数百万行におよぶコードを持っているC/C++アプリケーションのコンパイルにはdistccを活用していた。distccを使えばローカルのみでビルドする場合と比較して大幅なビルド時間の短縮が実現できるからだ。しかしGoogleとしてはそれでもまだコンパイルにかかる時間が長いと感じていたようだ。
Google Build Tools Teamでdistccのさらなる速度改善を目指して開発が取り組まれ、今回発表されたdistcc 3.0に取り込まれたのが「ポンプモード」と呼ばれる新しいアルゴリズムだ。ポンプモードでは静的解析をおこないプリプロセッサ処理に必要になるヘッダファイルを随時調べ上げ、C/C++ソースコードとヘッダファイルを一緒にプリプロセッサ処理目的で送信する。この結果ワークステーションにおけるCPU負荷が大幅に軽減され、ビルド時間のさらなる短縮につながったとしている。公表されているベンチマークによればSamba、Linux、Apache、glibc、binutilsなどのビルドで50%から200%ほどのビルド時間の改善が確認されたという。
パンプモードが追加されたdistccはすでに1年に渡ってGoogleのC/C++ビルドシステムとして活用されてきたようだ。distccは導入がそれほど難しくない。大規模アプリケーションのビルドに頭を悩ませている場合にはdistccの導入を検討してみるといいだろう。またすでにdistccを導入している場合にはdistcc 3.0のポンプモードを試してみるとよさそうだ。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |
|
「青春18きっぷ」春季用は2/20発売 - 夏季用・冬季用の発売は現時点で未定 [07:30 2/11] ライフ |
|
【ハウツー】炊飯器でつくるチャーシューが簡単すぎ、しかもおいしい! [07:00 2/11] ライフ |
|
【連載】出社前に。日常生活ですぐに使える! 英語クイズ 第118回 「どうぞお話しください、あなたが話す番です」ってなんて言う? [07:00 2/11] ライフ |
|
[観月ありさ]濃姫役で戦国時代劇初挑戦 信長役は城田優 SPドラマ「濃姫」 [05:00 2/11] エンタメ |