Burada bazı programlar derliyorum ve 4 çekirdeğim var. Bir yol söylemek var mı make
, cmake
yoksa gcc
etkileyen tüm çekirdek falan kullanarak derlemek?
Burada bazı programlar derliyorum ve 4 çekirdeğim var. Bir yol söylemek var mı make
, cmake
yoksa gcc
etkileyen tüm çekirdek falan kullanarak derlemek?
Yanıtlar:
Bir paket destekliyorsa, -j
paralel işlerin yürütülmesine izin vermek için bayrağı kullanabilirsiniz , örneğin:
make -j8
Bu bayrakla ilgili daha fazla ayrıntı Stackoverflow sorusunda bulunabilir. Make -j, kullanılabilir çekirdek sayısından daha büyük bir sayı iletildiğinde neden daha iyi performans gösterir? .
Birden fazla makineniz varsa distcc'yi deneyin . İlgili makinelerde sudo apt-get install distcc
,. Yapı makinenizin 192.168.1.1 olduğunu varsayarsak:
yardımcı makinelerde şunları çalıştırın:
sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
Derleme makinesinde, çalıştırmadan önce configure
veya cmake
derleme işlemi için kullanmak istediğiniz ana bilgisayarları belirtmeniz gerekir. İsteğe bağlı olarak, bir eğik çizgiden sonra eşzamanlı iş sayısını belirtin (varsayılan olarak 4'tür):
export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
Derleyicinin dağıtımını kullan:
export PATH="/usr/lib/distcc:$PATH"
Şimdi configure
veya cmake
uygulama ve ile inşa:
make -j$(distcc -j)
/usr/lib/distcc
PATH'nize iki kez koyarsanız , başarısız olacağını unutmayın. Bilgisayarınızda /usr/lib/distcc
yalnızca bir kez ayarladığınızdan emin olun PATH
.
Daha fazla ayrıntı için distcc (1) ve distccd (1) kılavuz sayfalarına bakın .
distccd --user nobody
. Aksi takdirde, yürüten kullanıcının altında çalışır.