Swift И Время Компиляции

Пост на основе статьи medium.com/@RobertGummesson/regarding-swift-build-time-optimizations-fc92cdd91e31 + мелкие изменения/дополнения, то есть текст исходит от меня, а не от третьего лица.

Всем знакома ситуация после изменения файла(ов) или простого повторного открытия проекта:

Swift и время компиляции



Swift и время компиляции



Swift и время компиляции

Надо сказать, что особых проблем с компиляцией я не заметил, когда писал на Objective-C, но все изменилось с приходом Swift в массы.

Я частично отвечал за CI-сервер для сборки iOS-проектов.

Итак, проекты, построенные на Swift, работали невыносимо медленно.

Разработчики также любят перетаскивать поды (зависимости cocoapods) в свои быстрые проекты при каждом чихе, иногда в безумных количествах.

Итак, компиляция всей этой смеси могла длиться несколько минут, хотя сам проект состоял буквально из пары десятков занятий.

Ну да ладно, это понятно, язык новый, на этапе компиляции проверок намного больше, чем в том же ObjC, глупо ожидать, что он будет работать быстрее (да, Swift - строго типизированный язык и все должно быть объявлено максимально явно (как в Java, например), в отличие от ObjC, где не все так строго).

Разработчики Swift обещают в разы большую скорость компиляции с каждым выпуском.

Ну вроде действительно билд 2.0 и только потом 2.2 стал работать быстрее, а сейчас уже не за горами версия 3.0 (конец года).

Компилятор есть компилятор, но оказывается, что время сборки проекта можно катастрофически увеличить всего несколькими строками кода.

Часть примеров взята из вышеупомянутой статьи, часть написана самостоятельно (автору я не поверил и захотел проверить сам).

Время измерялось через

  
   

time swiftc -Onone file.swift



Список вещей, которые могут замедлить работу вашего компилятора



Неосторожное использование оператора объединения Nil



func defIfNil(string: String?) -> String {

Теги: #xcode #Swift #iOS #разработка iOS #Swift
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.