distccを使ったクロスコンパイルの効果

先日 distcc と crossdev を使ってクロスコンパイル環境を作成しましたが、早速 OpenOffice.org を emerge してみたので、その効果の程を載せておきます。


こちらの環境はこんな感じです。


emerge をするマシン

Model DELL Inspiron 4150
CPU Pen4 Mobile 1.60GHz (1core)
MEM 256MB
KERNEL 2.6.31-gentoo-r10 (i686)


コンパイルさせるマシン

Model Windows7-64bit 上の Virtualbox
CPU Core i7 860 @ 2.80GHz (4CPU)
MEM 750MB
KERNEL 2.6.31-gentoo-r10 (x86_64)


emerge にかかった時間を表示するソフトは app-portage/splat や app-portage/genlop が用意されていますので、それらを使うといいです。興味がある人は emerge で入れてみてください。


splat で表示してみます。

$ splat openoffice
 * app-office/openoffice-3.1.1

        Emerged at: 土 10月 31 22:24:22 2009
        Build time: 1 day, 1 hour, 59 minutes, and 15 seconds

 * app-office/openoffice-3.2.0

        Emerged at: 金  3月 19 02:13:44 2010
        Build time: 3 hours, 28 minutes, and 11 seconds


genlop で表示してみます。

$ genlop -t openoffice
 * app-office/openoffice

     Mon Nov  2 00:23:37 2009 >>> app-office/openoffice-3.1.1
       merge time: 1 day, 1 hour, 59 minutes and 15 seconds.

     Fri Mar 19 05:41:55 2010 >>> app-office/openoffice-3.2.0
       merge time: 3 hours, 28 minutes and 11 seconds.
バージョン 3.1.1
以前 DELL のマシンで単体コンパイルを行ったときのもの。1日と1時間59分15秒…。
バージョン 3.2.0
今回の環境でクロスコンパイルを行ったもの。3時間28分11秒。


結構な差がありますね。

バージョンこそ 3.1.1 と 3.2.0 で異なっているため単純には比較できませんが、それでも7倍強の速度が出ており、効果は絶大だと言うことがわかります。今回は Virtualbox 上に作った環境に投げていますが、 Gentoo amd64 を動かしている実機に投げたらもっと速いかも。もっとも、 gcc を使う部分だけしか速くならないので大差ないかもしれませんが…。

ちなみに、Core i7 な実機 (物理 4core&HT) にインストールした Gentoo amd64 上で ooo を emerge した場合、1時間かかりません。オプションやらメモリ容量やらディスク速度やらも全然違うのですけど、いやはや、技術の進歩は本当にすごいですね。