Поскольку я обновился до последней версии Xcode 11.0 (11A420a), отладка выполняется очень медленно и громоздко.
РЕДАКТИРОВАТЬ: после обновления до 11.1 GM (11A1027) проблема остается прежней.
Скомпилировать проект и запустить его в симуляторе или на устройстве не проблема. Однако при достижении точки останова Xcode становится более или менее непригодным для использования:
- Выполнение программы немедленно останавливается при достижении точки останова. Однако Xcode требуется до 30 секунд, чтобы показать позицию в окне кода, и еще минуту или около того, чтобы загрузить содержимое представления переменных (которое показывает значения и состояния переменных, доступных в точке останова).
- Если я использую функции Step into или Step over, выполнение следующего шага займет до минуты и еще одну минуту для загрузки переменных.
Я запускаю Xcode на Mac mini 2018 с i7 3,2 ГГц и оперативной памятью 32 ГБ. Раньше я без проблем использовал Xcode 10 на той же машине.
Конечно, поиск «Xcode slow» вызывает массу потоков и возможных решений. За годы работы в качестве разработчика iOS я знаю, что Xcode никогда не был самой быстрой и стабильной программой. Однако никогда не было так плохо, как сейчас.
К сожалению, ни один из известных приемов (перезапуск Xcode или Mac, очистка проекта, очистка папок библиотеки Xcode и т. Д. Не дал никакого эффекта,
Итак, большой вопрос:
Это известная проблема в Xcode 11? Есть какие-нибудь известные решения?
Ответы:
Ну, у меня была такая же проблема, и недавно я понял, что просто забыл отключить диагностику для своей схемы
Откройте настройки запуска -> Управление схемами -> Изменить схему -> Выполнить -> вкладка Диагностика
источник
Я видел некоторые улучшения производительности при использовании поведения полной или инкрементной компиляции. Кроме того, при работе на Mojave и Catalina должны возникать проблемы с производительностью. В частности, поскольку предварительный просмотр Canvas и другие новые функции требуют большей нагрузки на процессор, чем последняя версия Xcode, я ожидал, что производительность Mojave будет ниже при использовании Xcode 11 (поскольку он не оптимизирован для этой версии ОС). Поскольку Catalina находится в стадии бета-тестирования, я ожидаю увидеть и дополнительные проблемы. Я не принимал особых мер, кроме проверки зрения. Первоначальный запуск Whole Compilation идет медленно, но после этого, похоже, станет лучше.
Быстрая справка гласит:
источник
Пожалуйста, попробуйте снять флажок: Parallelize Build для каждой цели в Edit Scheme . Это сэкономит время на сборку, если у вашего проекта много целей.
Изменить схему:
источник
Вы пробовали запустить Xcode в безопасном режиме? Это не идеально, но это был единственный способ заставить его работать эффективно. Так было до недавнего обновления Catalina, когда мое устройство больше не обнаруживается в безопасном режиме. Итак, я вернулся к исходной точке.
источник
Я обнаружил одни и те же проблемы в двух разных случаях:
1) приложение не запускается Xcode, т.е. в панели «Информация» в настройках «Запуск схемы» установлен флаг «Ждать запуска исполняемого файла»;
2) в настройках схемы выбрана опция «Запускать по событию фоновой выборки» (но это не по умолчанию)
Xcode 11.2.1 (11B500)
источник
В моем случае (XCode 11.x, MacOS 10.15.2) я обнаружил, что чрезмерная медлительность отладчика срабатывает только в том случае, если я выполняю одношаговое действие, в то время как выполняется другая одношаговая операция , т.е. я нажимаю кнопку шага слишком быстро. Мой текущий обходной путь - избегать этого.
Чистая спекуляция, но, возможно, это вызвано тем, что XCode / LLDB пытается одновременно обслуживать несколько точек останова? Попробуйте удалить все точки останова, кроме одной, и посмотрите, поможет ли это.
В случае, если это актуально: я в основном работаю с C ++ в XCode, с небольшим количеством Obj-C кое-где. В настоящее время я вообще не использую Swift.
источник
Я занимался этим вечно и наконец понял это. В моем файле ~ / .lldbinit были следующие строки:
break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
Я закомментировал эти строки, и теперь это почти так же быстро, как без отладчика!
источник
У меня было установлено 238 неиспользуемых точек останова. Когда я их удалил, опять быстро (даже с включенной диагностикой).
источник