Длительность выполнения компиляции для быстрых файлов

Есть ли способ сделать вывод времени, затраченного на компиляцию быстрого файла во время сборки xcode?

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

Report Navigator показывает отчеты полной сборки для каждого файла, но нет связанных с ними временных рамок.

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

Я хотел бы сократить время компиляции проекта Swift 1.2, так как он занимает около 5-10 минут после чистой или 3 -5 минут после смены источника в сильно зависимом файле.

Ответы

Ответ 1

Вы можете добавить...

-Xfrontend -debug-time-function-bodies

... для других быстрых флагов в Swift Compiler - раздел пользовательских флагов (параметры сборки).

Build settings

Примечание. Вы должны соблюдать тот же порядок этих флагов. -Xfrontend говорит, что следующий флаг должен быть передан интерфейсу. Это не сработает, если вы измените порядок.

Затем вы можете получить время компиляции в журнале сборки:

Build log

Это полезно, когда вы хотите оптимизировать время компиляции, а также хорошо прикрепить этот вид журнала построения, когда сообщается о проблеме Apple Swift guys о медленном времени компиляции.

Кредит отправляется Joe Pamer Исправитель хакера. В настоящее время является инженером-менеджером Apple (Swift, Clang), ранее в Microsoft (TypeScript, F #, JavaScript,.NET). Он написал в твиттере это как ответ на вопрос Роба Рикса о профилировании Swift-компиляции. Мне было любопытно, поэтому я разобрал компилятор, проверил текстовую секцию для большего количества флагов и нашел другие скрытые параметры. Не используйте их в производственном коде, просто играйте с ними.


Время сборки всего проекта. Запустите следующую команду в терминале...

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

... перезапустить Xcode, очистить и построить и...

Build time