Desde que actualicé a la última versión de Xcode 11.0 (11A420a), la depuración es extremadamente lenta y engorrosa.
EDITAR: Después de actualizar a 11.1 GM (11A1027), el problema sigue siendo el mismo.
Compilar un proyecto y ejecutarlo en un simulador o en un dispositivo no es ningún problema. Sin embargo, cuando se alcanza un punto de interrupción, Xcode se vuelve más o menos inutilizable:
- La ejecución del programa se detiene inmediatamente cuando se alcanza el punto de interrupción. Sin embargo, Xcode necesita hasta 30 segundos para mostrar la posición en la ventana de código y otro minuto más o menos para cargar el contenido de la vista de variables (que muestra los valores y estados de las variables disponibles en el punto de interrupción).
- Si utilizo las funciones Paso a paso o Paso a paso , se tarda hasta un minuto en realizar el siguiente paso y de nuevo otro minuto en cargar las variables.
Estoy ejecutando Xcode en una Mac mini 2018 con un i7 de 3,2 GHz y 32 GB de ram. He usado Xcode 10 en la misma máquina antes sin ningún problema.
La búsqueda de "Xcode slow" trae un montón de hilos y posibles soluciones, por supuesto. Desde mis años como desarrollador de iOS, sé que Xcode nunca fue el programa más rápido y estable. Sin embargo, nunca fue tan malo como ahora.
Desafortunadamente, ninguno de los trucos conocidos (reiniciar Xcode o Mac, limpiar el proyecto, limpiar las carpetas de la biblioteca de Xcode, etc.) tuvo ningún efecto,
Entonces la gran pregunta es:
¿Es este un problema conocido en Xcode 11? ¿Existen soluciones conocidas?
Respuestas:
Bueno, tuve el mismo problema y recientemente descubrí que simplemente olvidé deshabilitar los diagnósticos para mi esquema.
Abra sus configuraciones de ejecución -> Administrar esquemas -> Editar esquema -> Ejecutar -> pestaña Diagnóstico
fuente
He visto algunas mejoras en el rendimiento al usar el comportamiento Compilación total versus compilación incremental. Además, la ejecución en Mojave y Catalina debería mostrar problemas de rendimiento. Específicamente, dado que la vista previa de Canvas y otras características nuevas requieren más intensidad de CPU que la última versión de Xcode, esperaría que el rendimiento de Mojave sea menor al usar Xcode 11 (ya que no está optimizado para esta versión del sistema operativo). Con Catalina en Beta, también esperaría ver problemas adicionales. No he tomado medidas específicas más que el examen de la vista. La ejecución inicial de Whole Compilation es lenta, pero parece mejorar a partir de entonces.
Estados de ayuda rápida:
fuente
Intente desmarcar: Paralelizar la construcción en cada objetivo en Editar esquema . Ahorrará tiempo en la construcción si su proyecto tiene muchos objetivos.
Editar esquema:
fuente
¿Ha intentado ejecutar Xcode en modo seguro? No es ideal, pero esta era la única forma en que podía hacer que funcionara de manera eficiente. Eso es hasta la reciente actualización de Catalina donde mi dispositivo ya no se detecta en modo seguro. Así que estoy de vuelta al punto de partida ahora.
fuente
Encontré los mismos problemas en dos casos diferentes:
1) la aplicación no se inicia mediante Xcode, es decir, la bandera "Esperar a que se inicie el ejecutable" se establece dentro del panel de información de la configuración de Scheme Run;
2) la opción "Iniciar debido a un evento de recuperación en segundo plano" está seleccionada en la configuración del esquema (pero esta no es la predeterminada)
Xcode 11.2.1 (11B500)
fuente
En mi caso (XCode 11.x, MacOS 10.15.2), descubrí que la lentitud extrema del depurador solo se activa si doy un paso mientras otra operación de un solo paso está en curso , es decir, presiono el botón de paso demasiado rápido. Mi solución actual es evitar hacer eso.
¿Pura especulación, pero tal vez sea provocada por XCode / LLDB que intenta dar servicio a múltiples puntos de interrupción al mismo tiempo? Intente eliminar todos los puntos de interrupción menos uno y vea si eso ayuda.
En caso de que sea relevante: principalmente trabajo con C ++ en XCode, con un poco de Obj-C aquí y allá. No uso Swift en absoluto en este momento.
fuente
He estado lidiando con esto desde siempre y finalmente lo descubrí. Fueron estas líneas en mi archivo ~ / .lldbinit:
break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
¡Comenté esas líneas y ahora es casi tan rápido como sin el depurador!
fuente
Tenía establecidos 238 puntos de interrupción no utilizados. Cuando los borré, vuelve a ser rápido (incluso con los diagnósticos activados).
fuente