2015-03-19 2 views
7

Xcode добавила отличную возможность увидеть приложение в реальном времени, но как вы можете видеть длительность компиляции для отдельных классов, а затем узнать, какой код вызывает медленное время компиляции?Как отслеживать медленный компилятор Swift-кода?

This полезен, но только получает часть пути там.

ответ

6

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

✓ Compile MySwiftFile.swift (12067 ms)

Кроме того, для Swift 1.2 по крайней мере, есть флаг debug-time-function, который может быть передан в Swift компилятором, чтобы показать вам проблемные функции.

Дальнейшее обсуждение here

1

Откройте навигатор отчетов (значок «Воздушный шар» в левой панели). Когда вы создаете, нажимаете самую верхнюю строку с помощью молотка сборки, и вы видите прогресс компиляции для каждого скомпилированного файла.

+0

Это кажется полезным для _really_ медленной компиляции файлов, но поскольку Xcode скомпилирует много файлов параллельно, и ни один из моих файлов не содержит многосекундные компиляции, я не могу визуально увидеть, какие файлы занимают самое длинное, поскольку это происходит слишком быстро. В идеале был бы способ увидеть время компиляции каждого файла. – Shizam

+0

. Быстрый компилятор имеет параметр -j 'для управления # параллельными компиляторами. Может быть, если вы поставите это на 1, вы сможете смотреть его лучше. –

+0

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

1

Swift теперь включает в себя функции, по-функции компилятора профилировщика. Вы можете включить его с помощью флага компилятора -Xfrontend -debug-time-function-bodies.

Запустите чистую перестройку и используйте команду grep от this post, чтобы получить список времени компиляции по-разному.

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

Смежные вопросы