Проблемы с большим объёмом кода

xcode

#1

У меня больше 1,5 тысячи строк кода в классе. Xcode отказывается в реальном времени его обрабатывать (все строки тупо белые на тёмном фоне). Синтаксис не подсвечивается, ошибки показывает только после компиляции… Как решить проблему? У меня iMac late2009 4gb ram, 3,06 герц проц.


Как разделить содержимое tableView на разные файлы?
#2

Разбивать на разные классы, 1.5к строк - многовато будет, а если это еще и контроллер - то вообще беда. Если контроллер - для него нужно писать модель(и), если модель - разбивать.
P.S. Хотя странно, что с таким железом Xcode не вывозит полторы тысячи строк.


#3

Если есть время - надо рефакторить код (1.5к строк кода в большинстве случаем плохо и я уверен, что не SOLID’но). А так если Xcode физически не может работать при таком железе с таким кодом, то можете пересесть тупо на какой-то редактор с подсветкой синтаксиса для swift/objectice-c, но не будет анализа кода, а копились через Xcode cli.


#4

Обидно, что после комментирования буквально последних 10 строк кода всё начинает работать. Может в Xcode есть какие-нить скрытые настройки? Типа объём буфера, резерва оперативной памяти и т.д.? Хотелось бы решить вопрос со стороны железа. Времени на рефакторинг кода нет (. И слава богу, что это не контроллер, а лишь extension.


#5

Проверь Xcode не хватает выделенной памяти, или ему физически озу не хватает и он начинает юзать свап (В этом случае ты ему никак не выделишь больше памяти)?


#6

Как увеличить выделенную память? По ходу не хватает именно её т.к. физической памяти свободно 800 - 1000 мб.


#7

Вот подобная тема:

Xcode (как и другие программы), сам запрашивает виртуальную память у ОС. Я думал, что у вас просто хватает озу для анализа, но видимо это не так. Так что сочувствую, можно попытаться увеличить приоритет процессу, но это вряд ли поможет.


#8

Спасибо. Придется наращивать память. Ну а пока спасёт только рефакторинг…


#9

Не уверен, что дело в памяти (если у вас и так около 1гб еще свободно, а Xcode уже начинает баловаться). Я б грешил бы на Xcode(что анализатор крашиться, у самого бывает, что падает этот SourceKit, или как его они его назвали), или же на процессор (если не ошибаюсь у вас Core Duo).


#10

Да, core duo. Но я думаю, что если увеличить объем физической памяти, то система автоматом увеличит и свап. Может это поможет… Хотя может и процессор виноват. Да уж, нужно ещё погуглить. А у Вас какая система? Работали с таким объёмом кода?


#11

Как мне кажется, здесь проблема с памятью - по моим наблюдениям, Xcode не сьедает ее всю, даже если это необходимо, а процессор он использует не так обильно (у меня ни разу более 50% не загружал на i5 1.6 GHz).

Работаю на Эйре с 8 ОЗУ, иногда приходится работать с файлами по 2к строк - Xcode едва с ними справляется, с 1.5 - все более-менее нормально.

P.S. SSD не слабо увеличивает производительность Xcode.


#12

Спасибо за ответ. SSD установлен. Сейчас проверил - проц нагружается на 30%. Дело скорее в памяти.


#13

Вам совет разбейте вес код на классы о правилам ООП и паттернам. Если это сложно то разбейте по функция. в коде не должно быть несколько идентичные блоки кода.


#14

Да, всё это понимаю, но бывают случаи когда просто нужно сделать длинную “бороду”. ) Например у меня - проверка через свитч с иф большого объема блоков текста. И со всеми вытекающими последствиями набралось так много строк. Иногда большое количество классов и функций тоже могут всё усложнить… Но мне интересно (и меня бесит) другое, а именно то, что Xcode накладывает такие ограничения. В последних версиях вообще постоянные проблемы.


#15

Копайте в сторону архитектуры приложения :slight_smile:
В классе все будет хорошо, если будет не более 200 строк.