ios swift xcode time compilation

ios - Tiempo de compilación de Swift dramáticamente largo



xcode time (4)

Es probable que tenga activada la optimización del código, mientras que esto es imprescindible para construir su versión de lanzamiento, para compilaciones de desarrollo no es particularmente importante.

Lo que hace la optimización del código es exactamente lo que dice, optimiza su código para hacer que el binario final que se produce sea más pequeño. Hace cosas como cambiar el nombre de variables / métodos a caracteres individuales, etc. Como dije, obviamente quiere esto cuando lo envía a la tienda de aplicaciones, pero es posible que no le importe si la aplicación es más grande mientras lo desarrolla.

Puede desactivar la optimización de código para compilaciones de desarrollo yendo a Configuración del proyecto> Configuraciones de compilación, buscando ''optim'', en Swift Compiler - Generación de código establezca el nivel de optimización en Ninguno [-Onone] para compilaciones de depuración.

Esto debería mejorar significativamente tus tiempos de construcción.

Me gusta Apple y las cosas que hacen, pero Swift ... OH DIOS!

Tengo un problema con el tiempo de compilación `Swift`.

Configuración:

  • MacBook Pro (Retina, 13 pulgadas, mediados de 2014)
  • 2,6 GHz Intel Core i5
  • 8 GB 1600 MHz DDR3
  • SSD 256 (hasta 800 MB / s)
  • 1k clases
  • 10 pods

Tiempo de compilación: 3 min.

Parece que "el mejor y más rápido increíble, el sueño" esta configuración no es suficiente y funciona como Google Chrome - InfiniteLoop(find free memory - eat)


Intenté varios métodos para acelerar el tiempo de compilación:

  • Establezca HEADERMAP_USES_VFS en YES (sin cambios)

  • Establezca Build Settings / Architectures / Build Active Architecture Only en YES (algunas mejoras)

  • Establecer defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4 (8) (a veces empeora)

  • Establecer nivel de optimización en -Onone (sin mejoría importante)

  • Establecer formato de información de depuración: DWARF lugar de DWARF with dSYM File

  • Deshabilitar Find implicit dependencies de su esquema (sin mayor mejora)

  • Creó un nuevo proyecto y movió todos los archivos al nuevo (lleva demasiado tiempo y mejora poco el tiempo)

  • Cambiar el compilador de forma predeterminada a otros disponibles (incluso peor)

  • Reglas estrictas sobre cómo escribir rápidamente el código Swift compilado (a continuación, más detalles)

He encontrado algunas publicaciones donde las personas describen el mismo problema: aquí y aquí

Supongo que todos están esperando el nuevo Xcode 8.2 beta 2 donde:

Xcode no reconstruirá un objetivo completo cuando solo se hayan producido pequeños cambios. (28892475)

Pero esto solo es parcialmente cierto, todavía tengo un tiempo de compilación largo: pasé de 6-12 minutos a 3-8. La descripción detallada de esto se puede encontrar aquí y aquí

Además, seguí todas estas reglas durante la escritura del código:

  • Reducción de la función encadenada
  • Desenvolver los opcionales
  • Tipeo implícito para un objeto (diccionario especialmente)
  • ¿Evitar? operador (¡este extremadamente hambriento!)
  • Evitar?: Operador

En otras palabras, no use ninguna " nueva característica genial " porque esperará por años.

Una prueba más: es una solución alternativa descrita aquí :

Vaya a Producto -> Esquema -> Editar esquema. Seleccione Construir en la columna del lado izquierdo y desmarque "Buscar dependencias implícitas". Pero esta bandera debe permanecer marcada cuando construya el proyecto por primera vez.

Pero esta solución no es lo que estoy buscando y esto también puede ser una solución temporal.

Swift es un dolor no porque sea difícil de escribir, sino porque es difícil de usar (al menos en algunas máquinas).

A modo de comparación: tengo un proyecto en Objective-C con 2k clases y 11 pods, el tiempo de compilación limpio es de ~ 30 segundos.

También encontré una gran cantidad de errores abiertos en el rendimiento rápido:

Mi pregunta es:

¿Alguien tiene alguna solución para mejorar el tiempo de compilación de Swift?


Este problema también ha sido extremadamente frustrante para mí. Hemos probado varias de las soluciones que ha mencionado y ninguna de ellas funcionó.

La única cosa que hizo una mejora significativa en el tiempo de compilación es: Activar la Whole Module Optimization al agregar -Onone en Other Swift Flags .
Ver esto - Compilación acelerada rápida

Estoy usando Swift 3 con Xcode 8.3 .


Mejoramos mucho nuestro tiempo de compilación utilizando Carthage en lugar de Cocoapods para incluir bibliotecas de terceros.