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
enYES
(sin cambios)
- Establezca
Build Settings / Architectures / Build Active Architecture Only
enYES
(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 deDWARF 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:
- SR-2461
- SR-1465
- SR-1707
- SR-663
- y muchos otros, la lista es demasiado larga, y algunos de ellos se abrieron hace unos años
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.
OPTIMIZACIÓN DE MÓDULO ENTERO SIN RESTRICCIONES DE DEBUGGING
Simplemente agregue SWIFT_WHOLE_MODULE_OPTIMIZATION como una configuración definida por el usuario con el valor SÍ y los tiempos de compilación deberían mejorar mucho.
Esta corrección fue introducida por los desarrolladores de Zalando. Gritadles a ellos. https://jobs.zalando.com/tech/blog/improving-swift-compilation-times-from-12-to-2-minutes/?gh_src=4n3gxh1