Как ускорить компиляцию приложений Ubuntu (make, cmake, gcc)

Я собираю некоторые программы здесь, и у меня есть 4 ядра. Есть ли способ заставить make, cmake или gcc компилировать, используя все ядра или что-то такое, что может повлиять?

11
задан 27 February 2017 в 14:30

1 ответ

Если пакет поддерживает его, вы можете использовать флаг -j, чтобы разрешить выполнение параллельных заданий, например:

make -j8

Более подробную информацию об этом флаге можно найти в вопросе Stackoverflow Почему заставить -j работать лучше, когда ему передается число, превышающее число доступных ядер? .

Распределенная компиляция

Если у вас несколько машин, попробуйте distcc . На задействованных машинах, sudo apt-get install distcc. Предполагая, что ваша машина сборки равна 192.168.1.1:

  • на машинах помощника, запустите:

    sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
    
  • На машине сборки перед запустив configure или cmake, вы должны указать хосты, которые вы хотите использовать для процесса сборки. При желании укажите количество одновременных заданий после косой черты (по умолчанию 4):

    export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
    

    Заставьте компилятор использовать distcc:

    export PATH="/usr/lib/distcc:$PATH"
    

    Теперь configure или cmake приложение и сборка с:

    make -j$(distcc -j)
    

    Обратите внимание, что если вы дважды добавили /usr/lib/distcc в вашу переменную PATH, она потерпит неудачу. Обязательно установите /usr/lib/distcc только один раз в PATH.

Для получения дополнительной информации см. Страницы руководства для distcc (1) и distccd (1) .

0
ответ дан 27 February 2017 в 14:30

Другие вопросы по тегам:

Похожие вопросы: