GNU paralel
Sentetik bir derleme ölçütü yapıyordum ve bir Makefile yazmak için rahatsız edilemedim, bu yüzden kullandım:
sudo apt-get install parallel
ls | grep -E '\.c$' | parallel -t --will-cite "gcc -c -o '{.}.o' '{}'"
Açıklama:
{.}
girdi bağımsız değişkenini alır ve uzantısını kaldırır
-t
bize ilerleme hakkında fikir vermek için çalıştırılan komutları yazdırır
--will-cite
sonuçları kullanarak yayınlarsanız yazılımdan alıntı yapma isteğini kaldırır ...
parallel
kendimi kontrol etmek için bir zaman damgası bile yapabilirim:
ls | grep -E '\.c$' | parallel -t --will-cite "\
if ! [ -f '{.}.o' ] || [ '{}' -nt '{.}.o' ]; then
gcc -c -o '{.}.o' '{}'
fi
"
xargs -P
işleri paralel olarak da çalıştırabilir, ancak uzantı manipülasyonunu yapmak veya onunla birden fazla komut çalıştırmak biraz daha az uygundur: xargs üzerinden birden fazla komutu çağırmak
Paralel bağlama şu adresten soruldu: gcc, bağlantı yaparken birden fazla çekirdek kullanabilir mi?
YAPILACAKLAR: Ben derleme matris çarpımı azaltılabilir bir yerde okumak düşünüyorum, bu yüzden belki de büyük dosyalar için tek dosya derleme hızlandırmak mümkündür. Ama şimdi referans bulamıyorum.
Ubuntu 18.10'da test edilmiştir.