Ускорение GNU сделать процесс сборки - параллелизм? - PullRequest
6 голосов
/ 21 июля 2010

Я часто строю огромный проект, и это занимает много времени (более одного часа), чтобы завершить работу даже после настройки предварительно скомпилированных заголовков.Есть ли у них какие-либо рекомендации или приемы, позволяющие выполнять параллельную работу (например, запуск gcc в фоновом режиме, ... и т. Д.) Для обеспечения более быстрой сборки?

Примечание.файловая система оперативной памяти, и я не хочу менять структуру каталогов или философию сборки.

Ответы [ 4 ]

5 голосов
/ 21 июля 2010

Можно попробовать

make -j<number of jobs to run in parallel>
4 голосов
/ 21 июля 2010

make -jN является обязательным условием, так как большинство машин являются многоядерными.Если вы не хотите писать -jN каждый раз, вы можете указать

export MAKEFLAGS=-jN

в вашем .bashrc.

Вы также можете оформить заказ distcc .

4 голосов
/ 21 июля 2010

Если ваш проект становится слишком большим для одной машины, вы можете использовать одну из распределенных замен, например, Electric Cloud .

0 голосов
/ 11 апреля 2014

Если вы хотите запустить вашу сборку параллельно,

make -jN

выполняет работу, но имейте в виду:

  1. N должно быть равно maximum number of threads your machine supports, если вы введете число больше этого, make автоматически сделает N=maximum number of threads your machine supports
  2. make не поддерживает параллельное построение с использованием -jN в MSDOS, оно просто выполняет последовательное построение.Если вы укажете - jN, он понизит N=1.

Подробнее читайте здесь, из источника make: http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html

...