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), он останавливается. Просто закрытие всех открытых документов теперь и сейчас, похоже, облегчает это без необходимости полного перезапуска.
Ответ 7
Следующая публикация @lukasz немного помогла, особенно его вопрос № 8 в его ответе (закрытая панель утилиты и панель быстрого доступа)
Xcode 4 стал чрезвычайно медленным и убил мой жесткий диск
Ответ 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.
Ответ 15
Здесь много хороших предложений, я решил проблему, отключив моментальные снимки, как описано здесь:
Редактирование раскадровки в Xcode 5 очень медленное
Ответ 16
Вы можете избежать индексирования Xcode. Это позволит повысить производительность памяти вашей системы, но также предотвратит использование функций IDE, таких как автозаполнение и переход к определениям из рабочих.
$ defaults write com.apple.dt.XCode IDEIndexDisable 1
Ответ 17
Если у вас медленная производительность при изменении файла .xib с помощью конструктора/редактора интерфейса, перейдите в раздел "Инспектор файлов" для ".xib" и отключите автомакет. Внесите свои изменения в .xib, затем в качестве последнего шага снова включите автоматическую компоновку и добавьте или скорректируйте ограничения.