Chienomi

Yaourt(makepkg)の高速化

yaourt

Manjaro Linuxでyaourtを用いたAURパッケージのビルドが非常に遅いので、設定を見なおしてみた。 設定ファイルは/etc/makepkg.confである。

CFLAGSとCXXFLAGS

実行速度のためのパラメータ。

-march=x86-64 -mtune=generic

となっているが、これは一般的なx86_64バイナリ(最適化されない)を生成する。 これを適切な値にすることで最適化されたバイナリを生成する。

通常は

-march=native

とするが、distccでは利用できない。

gcc -c -Q -march=native --help=target | grep march

とすることで最適な値を知ることができる。Xeon W3565ではnehalem, Godavari(A10 7870K)ではbdver3だった。

MAKEFLAGS

並列ビルドのための値が書かれているが、コメントアウトされている。

最適な値はコア数の倍とされているが、distccではコア数が限度のようだ。

BUILDENV

!がついているものは無効。ccacheを有効にするだけでもある程度違うか。

distcc

Arch Wikiの情報が正確で詳しい。

distccをセットアップした上で、makepkg.confの設定を変更する。 なお、DISTCC_HOSTSについて、Zeroconfを使う場合が色々書かれているが、単に.localで名前解決するだけの話であれば普通にホスト名を書ける。

しかし…

-j12でも結局ローカルとリモートの2コアしか使われていなかったようにみえて残念。