Xcode 4 - низкая производительность

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

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

Я также иногда удалял проект "полученные данные" через Организатор → Проекты, и это мало повлияло.

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

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

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

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

Ответ 1

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

Сначала убедитесь, что 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


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

Ответ 2

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


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

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

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

Затем вы скажете Xcode хранить производные данные там enter image description here

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

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

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

Помните, что при перезагрузке вашего компьютера пропавший диск исчезнет, ​​поэтому неплохо было бы создать script или что-то, что запускается при запуске. И НЕ РАЗМЕЩАЙТЕ ЛЮБЫЕ ДАННЫЕ, ЧТО ВЫ ХОТИТЕ ХОРОШЕЕ!!!

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

Xcode 4.2, 4.3:

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

Отключить все несущественные, связанные с "просмотром" файлов:

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

Xcode 4.4, 4.5:

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

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

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

Наблюдаемые

  • Xcode 4.4/4.5 будет случайным образом отображать всю оперативную память в вашей системе (10 из GB для крошечного проекта), чтобы остальная часть системы остановилась, застряв в ожидании замены диска

    • ИСКАТЬ: на macbooks с SSD вы не узнаете, что это произошло.
    • WORST:... даже при том, что это может повредить ваш жесткий диск (SSD не нравится запись с тишиной)
  • Xcode откроет доступ к жесткому диску, чтобы он мог выполнять внутреннюю индексацию файла. Когда системная память становится низкой, а OS X необходимо выполнить подкачку... она застревает в ожидании Xcode для индексирования файлов... и Xcode занимает больше памяти, пока он ждет... и: BOOM! на небольших системах OS X в конечном итоге зависает

  • Xcode не нуждается в пространстве подкачки OS X

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

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

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

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

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

Ответ 6

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

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

Ответ 8

Каждый, кто испытывает эти проблемы, должен попробовать Xcode 4.1 в Mac OS X Lion. Я удивлен, насколько быстрее и отзывчиво он находится на одном и том же оборудовании (Macbook Pro 2.66 ГГц Core 2 Duo с 4 ГБ оперативной памяти здесь).

Я полагаю, они зафиксировали тонны ошибок производительности с этим выпуском.

Ответ 9

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

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

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

Ответ 10

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

Ответ 11

Я пробовал все, что было предложено в этой теме, и [многочисленные] другие, и единственное, что сработало для меня, было "отключить" подрывную деятельность для проекта. Здесь дрянная часть - единственный способ, которым я мог "отключить" встроенный SVN-плагин, был для моего файла /etc/hosts с фиктивным IP-адресом, что фактически привело к сбою доступа к SVN.

Я попытался удалить/переименовать IDESubversion.ideplugin в /Developer/Library/Xcode/PrivatePlugIns, но Xcode 4.2.1 pukes и отказывается запускаться.

Я попытался удалить мои SVN-репозитории из Xcode каждый раз, когда я перезапускаю Xcode, но Xcode сработает в течение нескольких минут.

Я попытался отключить "Удаленный статус" через File- > Source Control- > Hide Remote Status (ничего не сделал для меня).

Теперь, когда я установил свое имя хоста SVN в файл моих хостов 1.2.3.4, Xcode отлично работает и не показывает SBBOD почти каждый раз, когда я переключаюсь между файлами.

$ grep 1.2.3.4 /etc/hosts
1.2.3.4 svn.myhost.com

Затем, когда я действительно хочу выполнить управление версиями, мне нужно отключить файл hosts и использовать строку cmd svn.

Ответ 12

Я нашел трюк, чтобы ускорить компиляцию производительности XCode 4:

При запуске или компиляции или любой другой обработке в xcode и остановке активного активного монитора и выборе процесса xcode, нажмите на образец процесса. Это заставит процесс отклеиваться и запускаться снова, как обычно, что позволяет создавать приложение в разумные сроки. По крайней мере, это работает для меня.

Воля

Ответ 13

В моем случае это было использование ОЗУ.

enter image description here

Попробуйте убить несколько вкладок Chrome или редко использовать приложения. Это должно помочь!

Ответ 14

Наконец-то я получил нормальную работу xcode, отключив функцию git.

Ответ 16

Вы можете избежать индексирования Xcode. Это позволит повысить производительность памяти вашей системы, но также предотвратит использование функций IDE, таких как автозаполнение и переход к определениям из рабочих.

$ defaults write com.apple.dt.XCode IDEIndexDisable 1

Ответ 17

Если у вас медленная производительность при изменении файла .xib с помощью конструктора/редактора интерфейса, перейдите в раздел "Инспектор файлов" для ".xib" и отключите автомакет. Внесите свои изменения в .xib, затем в качестве последнего шага снова включите автоматическую компоновку и добавьте или скорректируйте ограничения.