2010-07-09 1 views
4

Поскольку я компилирую свой код на C++ на очень сервере (всего 32 или 64 ядра), существует ли способ настройки параметров компилятора, чтобы ускорить время компиляции? Например. чтобы компилятор мог компилировать независимые .cpp-файлы, используя несколько потоков.Есть ли способ ускорить время компиляции C++ в Solaris Sun Studio 12?

ответ

4

Sun Studio включает в себя поддержку параллельной сборки в комплекте dmake версия марки. Для получения более подробной информации см. the dmake manual.

+1

dmake -j 64 сократил время компиляции более двух минут до менее 4 секунд ... фантастическое. – Steve

4

Это зависит от того, какую инструментальную цепочку вы используете.

Если вы используете GNU Make, то добавьте -j 32 к вашему вызову make, чтобы сообщить Make, чтобы запустить 32 задания (например) параллельно. Просто убедитесь, что вы не исчерпываете ОЗУ и в результате обманываете свой файл подкачки.

3

Используйте что-то вроде Boost JAM, который делает для вас многопоточность - и по моему опыту гораздо эффективнее, чем многопоточный make.

0

Компилятор Sun C++ также имеет опцию -xjobs, которая делает компилятор fork несколькими потоками внутренне. Чтобы это было эффективно, вам, вероятно, придется передать все .cc-файлы одному вызову CC.

Смежные вопросы