Разное время компиляции в Xcode — clang

#ios #objective-c #xcode #clang #llvm-clang

#iOS #objective-c #xcode #лязг #llvm-clang

Вопрос:

Когда мы архивируем наше приложение iOS после очистки папки сборки, общее время компиляции процесса архивирования составляет 1700-1900 секунд.

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

Наш проект содержит как Swift, так и Objective-C коды. Когда я просматриваю журналы компиляции, время сборки для Swift-кодов одинаково в этих двух сборках. Но, с другой стороны, процессы clang отличаются. При первой сборке время компиляции каждого файла Objective-C составляет от 2 до 3 секунд. Но при второй сборке это время составляет 14-15 секунд.

Есть идеи, почему clang обрабатывает один и тот же код по-разному в разных сборках?

Комментарии:

1. Вы заметили это только один раз или это воспроизводимо, и у вас всегда одни и те же результаты? Последующие сборки всегда медленнее, чем первая чистая сборка?

2. Импортируете ли вы ...-Swift.h заголовки в код ObjC?

3. @McNight Мы всегда очищаем папку сборки перед каждым архивом. Я не могу найти какой-либо шаблон. Но в основном первая сборка выполняется быстрее, чем другие.

4. @EugeneDudnyk Да, у нас есть пара фреймворков Swift, импортированных в код Objective-C.

5. Нет, я спрашивал не об импорте других фреймворков, а об импорте ...-Swift.h сгенерированного заголовка внутри того же модуля. Т. Е. у вас смешанный модуль ObjC Swift, и вы используете Swift API этого модуля внутри ObjC-кода этого модуля — есть ли что-нибудь подобное?