2010-07-03 3 views
0

У меня есть mac-mini-сервер (2.53GHz, 4GB, 5400RPM), который я использую для разработки iphone. Я работаю над маленьким приложением. Компиляция, кажется, занимает больше времени и дольше (сейчас около 20 минут). В приложении около 20 небольших файлов на 4000 строк. Он ссылается на C++/Boost.Предложения ускорения GCC/XCode?

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

ответ

1

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

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

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

+0

предварительно скомбинированные заголовки улучшили жизнь. –

+0

Если вы нашли, что это помогло, а затем попробуйте трюк препроцесса: это покажет, сколько системных заголовков компилируется каждый раз. Также стоит попытаться свести к минимуму использование заголовков системы в ваших собственных файлах заголовков –

1

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

0

Что-то перепуталось. Мы собираем большие проекты во фракции времени.

1

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

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

2

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

Try:

defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 1

И посмотреть, если это помогает.

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

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