Xcode использует большую память, ест всю память в ram

Я использую Xcode на моем mac, который имеет 8GB RAM. Когда я открываю Xcode и не открываю ни одного проекта и жду около 2 минут, Xcode ест всю память в памяти, (4 ГБ, 5 ГБ...)

Может кто-нибудь сказать мне, почему и как это исправить?

Ответ 1

Я тоже занимаюсь этим вопросом в течение некоторого времени. Я думаю, что одно решение (которому я должен кредитовать пользователя 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 - он находится в вашем домашнем каталоге, а также, вероятно, скрыт, поэтому проще получить доступ с помощью терминала).

Edit/Update:

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

Ответ 2

нашел временное решение здесь

Запускайте эту команду каждый раз в то время, и это помогает с моим 8GB

Ответ 3

Я удивлен, что я не прочитал настоящего ответа/проблемы, хотя решения нет. Я вижу, вы упомянули, что вам даже не нужно открывать проект, но, как правило, проблема возникает при использовании раскадровки. Я подтвердил это, отправил примеры в Apple, подал отчеты об ошибках, ждал новых выпусков, еще ничего. Где-то внизу линии есть утечка при редактировании представлений раскадровки. Если вы редактируете необработанный код, вы никогда не увидите увеличения использования плунжера, а во втором вы начнете редактировать раскадровку с несколькими видами и segues проблема возникает. В настоящее время я запускаю 24 ГБ оперативной памяти, и его можно использовать менее чем за час при редактировании представлений в раскадровке. Как и многие другие, единственным решением является перезапуск Xcode. Просто закрыть проект недостаточно.

Ответ 4

У меня была та же проблема, но в отношении к интерфейсу Builder и раскадровке.

После некоторого размышления становится ясно, что после того, как файл 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 ГБ оперативной памяти и еще не заметил проблемы.

Ответ 5

Никакой реальной проблемы вокруг этой проблемы не существует.

Он обсуждался на многих сайтах. Единственное решение, которое помогло мне с этой проблемой, перезапустить XCode сейчас. Я не думаю, что будет реальное решение этой проблемы.

Ответ 6

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

Лично я начал с 2 ГБ, и XCode был просто... болезненным

После обновления до 8 ГБ мне просто пришлось перезапускать время от времени

Я слышал, что люди с 16 ГБ не так много жалуются и просто должны перезапускать XCode один или два раза в день.

Мне кажется странным, что вы используете всю свою память через 2 минуты. Я могу догадаться, что есть некоторые настройки, которые делают все утечки XCode намного хуже. Вы пытались удалить всю папку ~/Library/Developer и файлы настроек?