Distcc

From Wikipedia, the free encyclopedia

ソフトウェア開発においてdistccとは、コンピュータネットワーク上での分散コンピューティングを利用し、ソースコードコンパイル速度を改善するツールである。適切な設定を行えば、distccはプロジェクトのコンパイル時間を劇的に低減することが可能となる[1][2]

作者 マーティン・プール(Martin Pool)、Fergus Henderson
最新版
3.4 / 2021年5月12日 (4年前) (2021-05-12)
プログラミング
言語
C言語/Python
概要 作者, 最新版 ...
distcc
作者 マーティン・プール(Martin Pool)、Fergus Henderson
最新版
3.4 / 2021年5月12日 (4年前) (2021-05-12)
リポジトリ ウィキデータを編集
プログラミング
言語
C言語/Python
対応OS Unix系
プラットフォーム クロスプラットフォーム
サポート状況 開発中
種別 コンパイラ
ライセンス GNU General Public License
公式サイト code.google.com/p/distcc
テンプレートを表示
閉じる

このツールはC言語(また、C++Objective-Cなどの派生言語)と連携するように、そしてGCCをそのバックエンドとして使用するよう設計されている。Intel C++ Compilerサン・マイクロシステムズSun Studio Compiler Suiteでの動作報告も上がっているが互換性があるとまでは言えない[3]。distccは自由ソフトウェアであり、GNU General Public Licenseのもと配布される。

設計

distccは、他のコンピュータの未使用プロセスを利用し、コンパイル速度の向上を図るよう設計されている。distccがインストールされたマシンはネットワーク経由でdistccdデーモンと、互換性のあるコンパイラをインストールしたコンピュータにソースコードを送信する[4]

distccはコンパイラエージェントとして機能する。distccdデーモンはネットワークに接続している各マシン上で稼働させなければならない。もともと最初にdistccを走らせたマシンは、ヘッダファイルを取り扱うため、プリプロセッサを起動する。そして、(#ifdefのような)指令文ならびにソースファイルをプリプロセスし、プリプロセスをかけたソースファイルを暗号化処理なしで、もしくはSSHを使用しTCPネットワーク経由で他のマシンに送信する。リモートマシンは受信したソースファイルを(ライブラリ、ヘッダファイル、そしてマクロなど、リンクや展開が必要なデータ等)一切のローカル環境における依存性を排除した上でオブジェクトファイルにコンパイルする。そして次々とオブジェクトファイルを送信元に送り返す[5]

distccのバージョン3では、pump modeと呼ばれるモードをサポートしており、これは、リモートマシンへのヘッダファイルの送信をサポートしており、これにより、プリプロセス処理も分散化されている[6]

distccにはGTK+で作成されたフロントエンドも付いており、これを利用することで、どのノードで何のソースコードがどのような処理を行っているか分かる[7]

関連ソフトウェア

ccacheは、同一のソースコードを読み込んだ際にキャッシュされた出力結果を再利用することにより、コンパイル時間を低減することを狙ったもう一つのツールである。環境変数CCACHE_PREFIXを使用して既にキャッシュされていない場合、 ccacheはまた分散コンパイルを実行するために、distccのバックエンドとしても利用可能である。

distccはアップルのXcode開発スイートの分散ビルド用のオプションである。

IncrediBuild英語版MSVC/C++コンパイラを利用する開発者向けの代替ソフトウェアである。

脚注

関連項目

外部リンク

Related Articles

Wikiwand AI