Como habilitar o tempo de compilação no Xcode?

90

Gostaria de saber quanto tempo levam as compilações do meu projeto, por exemplo, exibindo-o no painel de compilação. Esta opção está disponível em algum lugar do Xcode?

Obrigado.

Guillaume
fonte

Respostas:

178

Digite isso no terminal:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

A duração aparece no visualizador de atividades após uma compilação, junto com a mensagem "Sucesso".

Se você estiver executando o aplicativo, o status será substituído pelo status de execução antes que você possa ver a duração.

Isso substitui a entrada que era usada em versões anteriores do Xcode:

defaults write com.apple.Xcode ShowBuildOperationDuration YES

O Xcode pode precisar ser fechado antes de inserir este comando. As durações devem aparecer na parte inferior esquerda da janela do projeto.

Comentário de um desenvolvedor Xcode: "Como acontece com todos os padrões de usuários não documentados, isso não é suportado, é assumido (mas não garantido) preciso e não tem garantia de eficácia em versões futuras."

Guillaume
fonte
7
Isso funciona para o Xcode 6 também. O tempo de construção é mostrado abaixo da barra de título da janela.
Klaas
6
@bobobobo Captura de tela de onde a hora aparece no Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy
2
Alguma maneira de imprimir para um arquivo?
Alex Bartiş
1
Confirma que isso funciona para mim no Xcode 7.1.1 (usando o mais recente com.apple.dt.Xcode)
Jedidja
1
Se alguém mais está se perguntando o visualizador de atividades é a janela no topo do meio do xcode, onde mostra o que está sendo construído atualmente e em que estágio do processo está.
Warpzit
13

não, mas você pode usar a linha de comando. cd para o diretório do seu projeto e digite

time xcodebuild
Nikolai Ruhe
fonte
13

No Xcode 10, agora você pode ver um grande detalhamento dos tempos de construção usando o recurso Resumo de tempo.

Produto-> Executar Ação-> Resumo de Construir com Tempo

Isso mostrará cada um de seus tempos de construção de destino e o tempo de construção geral do projeto. Você pode fazer muitas análises usando esses dados e os tempos de construção dependerão do seu hardware. Confira Building Faster in Xcode da WWDC 2018 se você quiser saber mais.

No entanto, o Xcode mantém o controle de todas as suas compilações por padrão e você pode examinar seus tempos e logs acessando o Navegador de relatórios.

Criar logs no Report Navigator

Andrew
fonte
não há como salvar o log de construção do XCode com temporizações. Só consigo ver a hora na saída do XCode
msk
3

Eu resolvi com Run Scripts emBuild Phases

Eu adicionei um Run Script no ponto inicial da construção:

echo $(date +%s) > ../build_start_time

e um no final:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

Agora posso ver a hora em Build Log -> Todas as mensagens

adsurbum
fonte
1
No Xcode 6.4, ele não permite arrastar uma fase de construção de script de execução antes de qualquer uma das fases de construção de "estoque". Se você criar várias fases de construção adicionais, isso permitirá que você reordene-as entre si, mas parece que todas as fases de construção de "estoque" devem vir primeiro. Você encontrou uma maneira de contornar isso?
Jason Pepas
0

Depois do Xcode 10

  • se você construir a partir da linha de comando, use -buildWithTimingSummarypara ver o resumo do tempo de construção.
xcodebuild -buildWithTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
  • Se você usar o Xcode Product->Perform Action->Build With Timing Summary,. E veja o resumo do tempo de construção no log de construção do Xcode.
RY Zheng
fonte
Hoje em dia, o argumento de linha de comando correto é-showBuildTimingSummary
Morse