Предложения по ускорению GCC / XCode? - PullRequest
0 голосов
/ 03 июля 2010

У меня есть стандартный Mac-мини-сервер (2,53 ГГц, 4 ГБ, 5400 об / мин), который я использую для разработки iphone. Я работаю над небольшим приложением. Компиляция, кажется, занимает все больше и больше времени (сейчас около 20 минут). Приложение насчитывает около 20 небольших файлов общим объемом 4000 строк. Это ссылки на C ++ / Boost.

Какие предложения у вас есть, чтобы ускорить процесс компиляции? Дешевле будет лучше.

Ответы [ 5 ]

2 голосов
/ 04 июля 2010

Звучит так, как будто система переставляет, что является распространенной проблемой при компиляции C ++ с тяжелым STL В такой ситуации GCC может быть полноценной памятью, и два GCC одновременно могут легко использовать всю память.

Попытка:

defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 1

И посмотри, поможет ли это.

Если это не так, то другие ответы могут помочь.

1 голос
/ 03 июля 2010

Как уже отмечали другие, это намного превосходит то, что вы ожидаете, поэтому это предполагает проблему где-то. Попробуйте переключить распределенные сборки - в зависимости от вашей настройки это может улучшить или замедлить их (какое-то время у нас была ситуация, когда одна машина обслуживала сборки других, но не свою). Если у вас сеть 1 Гб, то вы можете получить дополнительную производительность от распределенных сборок (особенно если у вас есть пара запасных macminis). Также включите предварительно скомпилированные заголовки и поместите в них заголовки boost и cocoa.

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

Также с бустом попробуйте уменьшить его, чтобы найти только те биты, которые вам нужны. Инструмент bcp, входящий в дистрибутив, будет копировать только те пакеты, к которым вы его запрашиваете, плюс все зависимости, так что вы не создаете вещи, которые не будете использовать.

1 голос
/ 03 июля 2010

Я согласен с Эйко.Мы компилируем проекты значительно большего размера (включая библиотеки повышения) за гораздо более короткое время.

Я бы начал с проверки журналов.Вы также можете просмотреть исходные данные компилятора в окне сборки (Shift + CMD + B или в меню Build-> Build Results).Xcode просто выполняет прямые вызовы gcc или llvm, так что это может дать вам лучшее представление о том, что на самом деле происходит в процессе сборки.

1 голос
/ 03 июля 2010

Включите все ваши заголовки повышения в предварительно скомпилированный заголовок для вашего проекта.

0 голосов
/ 03 июля 2010

Там что-то напутано.Мы собираем большие проекты за доли времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...