Arch Linux でパッケージをビルドする際、makepkgしたら-> Compressing package...で永遠に待たされた経験のある人は多いと思います。
android-ndk とか最悪ですね。何であんなに遅いんだろう…
これはxzコマンドがシングルスレッドで動いているのが原因なのですが、最近xzにマルチスレッドで動かすようなオプションが出来たみたいです。
/etc/makepkg.conf の COMPRESSXZがある行を下記のように変更すると有効になります。
COMPRESSXZ=(xz -T 0 -c -z -)
-T 0 オプションを追加すると良いみたいです。
実際にオプションを追加して実行してみた結果が以下です。android-ndkで試してみました。
ダウンロードやconfrimもあるので正確な数値ではないですが、かなり速くなっている && CPU使用率が高くなっているのがわかると思います。
### before total 1245.54s user 1106.71s system 41.85s CPU 92% cmd yaourt android ndk ### after total 484.37s user 1729.25s system 32.68s CPU 363% cmd yaourt android ndk
ちなみにCPUはcore i7 6700kで、4コア8スレッドです。
compressの部分だけを比べているわけではないので、純粋に8倍にはなりませんね。
ただし、makepkg実行中のCPU使用率をグラフで見ていると、beforeは1コアしか使用していないのに対し、afterは8コア全てが100%に張り付いていました。