Xcode 4 - низкая производительность - PullRequest
128 голосов
/ 15 июня 2011

У меня проблема с Xcode 4, который очень медленно реагирует на взаимодействие с пользователем, например, редактирование кода, прокрутка областей и т. д. Это, в частности, происходит с крупномасштабными проектами с большим количеством контроллеров / файлов просмотра и т. д.

Я полностью вытер жесткий диск и переустановил Snow Leopard и Xcode на прошлой неделе, но постепенно это привело к разочаровывающему времени отклика (в течение нескольких дней), что значительно нарушило рабочий процесс.

Я также иногда удалял «производные данные» проекта через Организатор -> Проекты, и это оказало небольшое влияние.

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

FYI Я использую MacBook с процессорами Intel Core 2 Duo с тактовой частотой 2 ГГц и 4 ГБ оперативной памяти.

В случае необходимости обновления, я также хотел бы знать, испытывают ли люди такую ​​низкую производительность с Xcode 4 на машинах с хорошими характеристиками (что сделало бы обновление нашего оборудования довольно бессмысленным, поскольку только Xcode имеет какие-либо проблемы с производительностью MacBook).

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

Ответы [ 17 ]

161 голосов
/ 15 июня 2011

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

Сначала убедитесь, что Xcode не открыт.Теперь найдите файл вашего проекта.Щелкните правой кнопкой мыши на нем и выберите Show Package Contents.

enter image description here

Далее удалите project.xcworkspace.

enter image description here

Откройте Xcode и наслаждайтесь более высокой производительностью!

Благодаря: http://meachware.blogspot.com/2011/06/speed-up-xcode-4.html


Редактировать: I 'Мы получили несколько комментариев по этому поводу, отметив, что для некоторых проектов это может вызвать проблемы.Перед выполнением этих шагов убедитесь, что у вас есть резервная копия проекта, и не забудьте проверить и протестировать свой проект впоследствии .Убедитесь, что у вас все еще есть все ваши исполняемые файлы и схемы.

46 голосов
/ 10 января 2012

ВАЖНОЕ ОБНОВЛЕНИЕ: пути изменены для Xcode 6 (спасибо за комментарий dcc)!Я только что добавил альтернативный способ.


Есть еще один приятный способ закрепить сборки, создав оперативный диск со следующей строкой кода:

diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://8475854`

Это создает-изображение диска размером около 4 ГБ.Но будьте осторожны, вам нужно иметь достаточно памяти.Конечно, вы можете создать изображение меньшего размера, например, 2 ГБ (это было бы 4237927).

Затем вы сообщаете Xcode о необходимости хранения производных данных enter image description here

Вы не можете указать Xcode хранить iPhoneДанные симулятора находятся там напрямую, но вы можете создать папку на виртуальном диске и создать символическую ссылку вместо каталога симулятора iPhone, выполнив следующее:

Xcode 6:

cd /Volumes/ramdisk
mkdir CoreSimulator
rm -R ~/Library/Developer/CoreSimulator
ln -s /Volumes/ramdisk/CoreSimulator ~/Library/Developer/CoreSimulator

Старые версии Xcode:

cd /Volumes/ramdisk
mkdir iPhone\ Simulator
rm -R ~/Library/Application\ Support/iPhone\ Simulator
ln -s /Volumes/ramdisk/iPhone\ Simulator ~/Library/Application\ Support/iPhone\ Simulator

Если я соберу для симулятора с этой настройкой, он будет запущен и работает в кратчайшие сроки:)

Помните, что диск RAM исчезнет, ​​когда вы перезагрузите компьютер, поэтомуЭто может быть хорошая идея, чтобы создать скрипт или что-то, что запускается при запуске.И НЕ РАЗМЕЩАЙТЕ ДАННЫХ, КОТОРЫЕ ВЫ ХОТИТЕ СОХРАНИТЬ !!!

ОБНОВЛЕНИЕ 2013-03-12:

  1. Прочитайте комментарий Франциско Гарсии ниже!

  2. С моим новым MBP (содержащим SSD-накопитель) мне больше не нужен этот метод.XCode работает как ад :).Я надеюсь, что это не воспринимается как реклама для большого фруктового концерна, это просто отчет об опыте ...

9 голосов
/ 04 августа 2011

Отключение текущих проблем в общих настройках внесло определенные изменения. Я также настраиваю схему без включенного gdb для ситуаций, когда я часто перезапускаюсь (ни один gdb не ускоряет запуск).

7 голосов
/ 30 декабря 2012

Xcode 4.2, 4.3:

Основные проблемы с индексатором файлов (тот же код, который запускает Spotlight, который глючил годами? Вероятно).

Отключить все несущественное, чтоучаствует в «просмотре» файлов:

  1. Быстрая справка (Примечание: никогда не нажимайте на вкладку QH! Даже скрытие помощника по-прежнему приводит к запуску кода! Переключитесь на другую вкладку перед переходом на новую).файл ...)
  2. Управление SCM (SVN, Git и т. д. - поддержка git в Xcode все еще немного глючит (может испортить проекты), и они отказались от поддержки SVN, так что вам не следует ее использоватьв любом случае!)
  3. попробуйте удалить папку рабочей области (согласно принятому ответу), но только если она большая на диске
  4. ... что-либо еще, что вы можете найти, связанное со статусом отдельных файлов

Xcode 4.4, 4.5:

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

В конце концов, отключив / включив своппространство (, как отключить или включить подкачку в Mac OS X ), и использовать обычные жесткие диски на нескольких машинах, и, проводя эксперименты на машинах с 2 ГБ ОЗУ до 16 ГБ ОЗУ, я обнаружил, что Xcode кажетсязапускать собственное пространство подкачки, независимо от подкачки OS X (!).

(это может быть ошибкой - может быть, существует дополнительная форма подкачки OS X, о которой я не знаю - но системные файлы подкачкине стал больше или меньше, в то время как на некоторых машинах дисковое пространство перепрыгнуло гигабайтами вверх и вниз)

Замечено:

  1. Xcode 4.4 / 4.5 случайным образом займет всеОЗУ в вашей системе (10 ГБ для крошечного проекта), так что остальная часть системы останавливается, застревая в ожидании замены диска

    1. WORSE: на MacBook с SSD вы не будетезнаю, что это произошло
    2. WORST: ... даже если это может повредить ваш жесткий диск (SSD не любит перебивать записи)
  2. Xcode будет работатьдоступ к жесткому диску, чтобы он мог это сделатьs (нарушена) внутренняя индексация файлов.Когда системная память заканчивается, и OS X нуждается в обмене ... он застревает в ожидании Xcode для индексации файлов ... и Xcode занимает больше памяти, пока он ждет ... и: BOOM!в небольших системах OS X в конечном итоге зависает

  3. Xcode не требуется пространство подкачки OS X

Последнее очень интересно.Если у вас много памяти (например, 16 ГБ), попробуйте отключить пространство подкачки навсегда.Xcode работает быстрее, потому что OS X Lion имеет некоторые ошибки в управлении mem, где он меняет , даже когда ему не нужно .

Если xcode внезапно замедляется, он переставляется внутренне, при этомВы можете просто убить и перезапустить его.

(если у вас есть твердотельный накопитель, единственный способ узнать, начался ли его обмен, - это подождать, пока он замедлится. В противном случае, вы знаете, как толькоВы слышите трэш HD: системного файла подкачки больше нет, поэтому единственная возможная причина - Xcode)

Вы можете безопасно отключить файл подкачки, даже если у вас 2 ГБ ОЗУ (у меня был только один сбой OS X в месяц, когда япопробовал это, запустил его таким образом в течение года), но это остановит вас при выполнении высококачественной видео / графической работы с файлами, для работы которых требуется несколько гигабайт.Не стесняйтесь попробовать его в течение нескольких недель и посмотрите, что произойдет.

Но ... перезапуск Xcode всякий раз, когда он замедляется, творит чудеса.На машинах с меньшим объемом ОЗУ приватный файл подкачки XCode, похоже, НЕМЕДЛЕННО удаляется при закрытии (на компьютерах с большим количеством ОЗУ этого не происходит)

7 голосов
/ 22 июня 2011

Я не знаю, помогает ли это кому-нибудь, но для меня XCode значительно увеличил производительность после настройки его работы в 32-битном режиме (по умолчанию было 64). Это почти так же быстро, как старый xcode 3. Вы можете переключиться на 32 бит, щелкнув правой кнопкой мыши приложение (в / Developer / Applications / XCode.app ) и выбрав Get Info и проверка Открыть в 32-битном режиме .

4 голосов
/ 25 августа 2011

Ни один из этих ответов действительно не улучшил производительность в моем случае (со временем Xcode 4.1 стал почти непригодным для использования, только выход из него иногда помогал).

Однако я только что узнал, что если я продолжу закрывать вседокументы (control-command-W), кажется, быстро.Xcode автоматически сохраняет все документы, которые вы нажимаете в памяти, и вы можете перемещаться между ними с помощью управляющей команды влево / вправо.Если вы случайно откроете слишком много (особенно окон IB), оно остановится.Простое закрытие всех открытых документов время от времени, кажется, облегчает это без необходимости полного перезапуска.

2 голосов
/ 25 июля 2011

Всем, кто испытывает эти проблемы, следует попробовать Xcode 4.1 на Mac OS X Lion.Я удивлен, насколько намного быстрее и отзывчивее работает на одном и том же оборудовании (MacBook Pro 2,66 ГГц Core 2 Duo с 4 ГБ ОЗУ здесь).этот выпуск.

2 голосов
/ 16 июля 2011

Следующий пост @lukasz немного помог, особенно его пункт № 8 в его ответе (Закрытая панель утилит и Панель быстрой справки)

Xcode 4 стал очень медленным и убил мой жесткий диск

1 голос
/ 11 апреля 2012

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

1 голос
/ 15 июня 2011

Я сталкиваюсь с теми же проблемами, которые были частично исправлены с момента сборки бета-версии, но все еще не устранены. Кажется, что Xcode внутренне получил одну (или более ...) утечку, которая наполняет вашу память, вы можете очень хорошо наблюдать эту изящную «особенность» при использовании встроенного Interface-Builder. Два возможных решения для молитвы и заполнения отчетов об ошибках для яблока:

  1. Не используйте внутренний Builder, вместо этого запустите внешнее приложение
  2. Время от времени выходите из Xcode, это должно освободить утечку памяти

Извините, но я думаю, что нет лучших решений ....: /

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