Пост на основе статьи medium.com/@RobertGummesson/regarding-swift-build-time-optimizations-fc92cdd91e31 + мелкие изменения/дополнения, то есть текст исходит от меня, а не от третьего лица.
Всем знакома ситуация после изменения файла(ов) или простого повторного открытия проекта:
Надо сказать, что особых проблем с компиляцией я не заметил, когда писал на 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
-
Психография Против Демографии
19 Oct, 24 -
Сложно Ли Работать Qa?
19 Oct, 24 -
Будущее Web 2.0 – Бизнес 2.0?
19 Oct, 24 -
Игра Тьюринга
19 Oct, 24