¿Cómo habilitar el tiempo de compilación en Xcode?

90

Me gustaría saber cuánto tardan las compilaciones de mi proyecto, por ejemplo, mostrándolo en el panel de compilación. ¿Esta opción está disponible en algún lugar de Xcode?

Gracias.

Guillaume
fuente

Respuestas:

179

Escriba esto en la terminal:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

La duración aparece en el visor de actividades después de una compilación, junto con el mensaje "Correcto".

Si está ejecutando la aplicación, el estado será reemplazado por el estado en ejecución antes de que pueda ver la duración.

Esto reemplaza la entrada que se usó en versiones anteriores de Xcode:

los valores predeterminados escriben com.apple.Xcode ShowBuildOperationDuration YES

Es posible que Xcode deba cerrarse antes de ingresar este comando. Las duraciones deben aparecer en la parte inferior izquierda de la ventana del proyecto.

Comentario de un desarrollador de Xcode: "Al igual que con todos los valores predeterminados de usuario indocumentados, esto no es compatible, se asume (pero no se garantiza) es preciso y no se garantiza que sea efectivo en versiones futuras".

Guillaume
fuente
7
Esto también funciona para Xcode 6. El tiempo de construcción se muestra debajo de la barra de título de la ventana.
Klaas
6
@bobobobo Captura de pantalla de dónde aparece la hora en Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy
2
¿Alguna forma de llegar a imprimirlo, a un archivo?
Alex Bartiş
1
Confirma que esto funciona para mí en Xcode 7.1.1 (usando el más reciente com.apple.dt.Xcode)
Jedidja
2
Si alguien más se pregunta, el visor de actividad es la ventana en la parte superior media de xcode donde muestra lo que se está compilando actualmente y qué tan avanzado está el proceso.
Warpzit
14

En Xcode 10, ahora puede ver un gran desglose de los tiempos de compilación utilizando su función Resumen de tiempo.

Producto-> Realizar acción-> Construir con resumen de tiempo

Esto mostrará cada uno de los tiempos de construcción objetivo y el tiempo de construcción general del proyecto. Puede hacer muchos análisis con estos datos y los tiempos de construcción dependerán de su hardware. Consulte Building Faster in Xcode de WWDC 2018 si desea obtener más información.

Sin embargo, Xcode realiza un seguimiento de todas sus compilaciones de forma predeterminada y puede examinar sus tiempos y registros yendo a su Navegador de informes.

Crear registros en el navegador de informes

Andrés
fuente
no hay forma de que pueda guardar el registro de compilación de XCode con tiempos. Solo puedo ver la hora en la salida de XCode
msk
13

no, pero podrías usar la línea de comando. cd al directorio de su proyecto y escriba

time xcodebuild
Nikolai Ruhe
fuente
3

Lo resolví con Run Scripts enBuild Phases

He agregado un Run Script en el punto de inicio de la compilación:

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

y uno al final:

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

Ahora puedo ver la hora en Build Log -> All Messages

adsurbum
fuente
1
En Xcode 6.4, no le permitirá arrastrar una fase de construcción de secuencia de comandos de ejecución antes de cualquiera de las fases de construcción "stock". Si crea un montón de fases de construcción adicionales, le permitirá reordenarlas entre sí, pero parece que todas las fases de construcción "de stock" deben ser lo primero. ¿Has encontrado una forma de evitar esto?
Jason Pepas
0

Después de Xcode 10

  • si construye desde la línea de comandos, use -buildWithTimingSummarypara ver el resumen del tiempo de construcción.
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
  • Si usa Xcode, Product->Perform Action->Build With Timing Summary. Y vea el resumen del tiempo de construcción en el registro de construcción de Xcode.
RY Zheng
fuente
Hoy en día, el argumento de línea de comando correcto es-showBuildTimingSummary
Morse