Xcode использует большую память, съедает всю память в оперативной памяти
Я использую Xcode на моем Mac, который имеет 8 ГБ оперативной памяти. Когда я открываю Xcode и не открываю какой-либо проект и жду около 2 минут, Xcode съедает всю память в оперативной памяти (4 ГБ, 5 ГБ...)
Кто-нибудь может сказать мне, почему и как это исправить?
6 ответов
Я тоже давно занимаюсь этим вопросом. Я думаю, что одно решение (за которое мне нужно justin должное пользователю justin) - это установить несколько значений конфигурации для XCode. Это должно быть сделано после выхода из Xcode, конечно.
В терминале выполните следующие команды:
defaults write com.apple.dt.XCode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4
defaults write com.apple.dt.XCode IDEIndexDisable 1
это предотвратит индексацию и уменьшит количество задач компиляции. Это позволило моему Xcode оставить мне немного оперативной памяти для выполнения некоторой работы.
чтобы удалить эти настройки, например, индексирование:
defaults delete com.apple.dt.XCode IDEIndexDisable
Как уже упоминалось, это обсуждалось в этом вопросе.
Кроме того, очистка кэша Xcode позволила снизить скорость, с которой ОЗУ съедалось. (в ~/Library/Developer/Xcode/DerivedData - он находится в вашей домашней директории, а также, вероятно, он скрыт, поэтому к нему проще получить доступ через Terminal).
Редактировать /Update:
Очевидно, это помогает с проблемой памяти (хотя все еще необходимо регулярно перезагружать XCode). Однако вы теряете некоторые приятные вещи: мгновенную проверку ошибок, добавление IBOutlet control-drag-and-drop в заголовок контроллера (нужно сделать это по-старому - введите и затем подключите), возможно, некоторые другие полезные функции, которые прийти с индексацией. Так что будьте в курсе.
Нашел временное решение здесь
Выполнять эту команду время от времени, и это помогает с моими 8GB
Я удивлен, что не прочитал реальный ответ / проблему здесь, хотя нет никакого решения. Я вижу, вы упомянули, что вам даже не нужно открывать проект, но обычно проблема возникает при использовании раскадровок. Я подтвердил это, отправил примеры в Apple, подал отчеты об ошибках, ждал новых выпусков, пока ничего. Где-то внизу есть утечка при редактировании раскадровок. Если вы редактируете необработанный код, вы никогда не увидите увеличение использования оперативной памяти, но во второй раз вы начнете редактировать раскадровку с несколькими представлениями и переходами, и возникает проблема. В настоящее время я использую 24 ГБ оперативной памяти, и его можно использовать менее чем за час при редактировании представлений в раскадровке. Как уже упоминалось, единственное решение - перезапустить Xcode. Простого закрытия проекта недостаточно.
Я столкнулся с той же проблемой, но в связи с доступом Interface Builder и Storyboard.
После некоторых размышлений становится ясно, что после того, как файл Storyboard в моем проекте увеличился до некоторой величины (в настоящее время около 1,5 МБ на диске), у XCode и IB возникли проблемы.
При изменении текста в каком-либо (например, IBLabel) объекте требуется примерно 0,5 секунды для каждой буквы, что дает 3 секунды для изменения слова из 6 символов. Это сильно меня тормозит.
Перезапуск XCode помогает и освобождает всю занятую память... до следующего рабочего сеанса.
У меня сложилось впечатление, что IB создает буфер отмены после каждого изменения (например, изменение одной буквы), потому что после каждого отдельного изменения объем памяти увеличивается примерно на 20 МБ (возможно, размер раскадровки в ОЗУ на диске составляет 1,5 МБ).
И после перезапуска XCode, буфер отмены ушел, и некоторое количество памяти соответственно освободилось.
Я хотел бы знать способ ограничения размера буфера отмены и проверить его с этим меньшим размером.
Конфигурация: Mac Mini, 4 ГБ оперативной памяти, OS X 10.8.3, XCode 4.6, XCode 4.6.1, XCode 4.6.2
В настоящее время я вернулся к XCode 4.5, и ситуация кажется немного лучше, но проблема все еще здесь. Я полагаю, что эта версия имеет меньше возможностей, чем 4.6, и в соответствии с этой разницей она использует меньше памяти.
Хорошо, похоже, что XCode 4.5 на самом деле МОЖЕТ освободить часть памяти, которую выделяет Interface Builder.
Обновление от 21 мая 2013 года. Я обновил с 4 ГБ до Mac Mini 2011 8 ГБ ОЗУ и пока не заметил проблем.
Там нет реального пути решения этой проблемы.
Это обсуждается на многих сайтах. Единственное решение, которое помогло мне с этой проблемой, это перезапустить XCode сейчас и тогда. Я не думаю, что будет реальное решение этой проблемы.
XCode - это настоящий монстр памяти, и если вы пытаетесь использовать один из "инструментов", он съедает еще больше. В зависимости от задач у некоторых людей не так много проблем, особенно если у них больше памяти.
Лично я начал с 2 ГБ, а XCode был просто... болезненным
После обновления до 8 ГБ мне просто пришлось время от времени перезагружать
Я слышал, что люди с 16 ГБ не жалуются так сильно, а просто перезагружают XCode один или два раза в день.
Мне кажется довольно странным, что вы используете всю свою память через 2 минуты. Я мог бы догадаться, что есть некоторые ваши настройки, которые делают все утечки XCode намного хуже. Вы пытались удалить все ваши ~/Library/Developer папку и файлы настроек?