Depuis que j'ai mis à jour la dernière version de Xcode 11.0 (11A420a), le débogage est extrêmement lent et fastidieux.
EDIT: Après la mise à jour vers 11.1 GM (11A1027), le problème est toujours le même.
Compiler un projet et l'exécuter dans un simulateur ou sur un appareil ne pose aucun problème. Cependant, lorsque vous atteignez un point d'arrêt, Xcode devient plus ou moins inutilisable:
- L'exécution du programme s'arrête immédiatement lorsque le point d'arrêt est atteint. Cependant, Xcode a besoin de 30 secondes pour afficher la position dans la fenêtre de code et une minute environ pour charger le contenu de la vue variable (qui montre les valeurs et les états des variables disponibles au point d'arrêt).
- Si j'utilise les fonctionnalités Pas à pas ou Pas à pas , il faut jusqu'à une minute pour effectuer l'étape suivante et encore une minute pour charger les variables.
J'exécute Xcode sur un Mac mini 2018 avec un i7 3,2 GHz et 32 Go de RAM. J'ai déjà utilisé Xcode 10 sur la même machine sans aucun problème.
La recherche de "Xcode slow" fait apparaître une tonne de threads et des solutions possibles bien sûr. De mes années en tant que développeur iOS, je sais que Xcode n'a jamais été le programme le plus rapide et le plus stable. Cependant, ce n'était jamais aussi mauvais que maintenant.
Malheureusement, aucune des astuces connues (redémarrage de Xcode ou du Mac, nettoyage du projet, nettoyage des dossiers de la bibliothèque Xcode, etc. n'a eu aucun effet,
La grande question est donc:
Est-ce un problème connu dans Xcode 11? Existe-t-il des solutions connues?
Réponses:
Eh bien, j'ai eu le même problème et j'ai récemment compris que j'avais juste oublié de désactiver les diagnostics pour mon schéma
Ouvrez vos configurations d'exécution -> Gérer les schémas -> Modifier le schéma -> Exécuter -> onglet Diagnostics
la source
J'ai constaté des améliorations de performances lors de l'utilisation du comportement Compilation complète ou incrémentielle. De plus, fonctionnant sur Mojave et Catalina devraient tous deux présenter des problèmes de performances. Plus précisément, étant donné que l'aperçu de Canvas et d'autres nouvelles fonctionnalités nécessitent plus d'intensité du processeur que la dernière version de Xcode, je m'attendrais à ce que les performances de Mojave soient inférieures lors de l'utilisation de Xcode 11 (car il n'est pas optimisé pour cette version du système d'exploitation). Avec Catalina étant en version bêta, je m'attendrais à voir également des problèmes supplémentaires. Je n'ai pas pris de mesures spécifiques autres que le test de la vue. L'exécution initiale sur Whole Compilation est lente mais semble s'améliorer par la suite.
Aide rapide indique:
la source
Veuillez essayer de décocher: Parallelize Build sur chaque cible dans Edit Scheme . Cela vous fera gagner du temps à construire si votre projet a de nombreuses cibles.
Modifier le schéma:
la source
Avez-vous essayé d'exécuter Xcode en mode sans échec? Ce n'est pas l'idéal, mais c'était la seule façon de le faire fonctionner efficacement. C'est jusqu'à la récente mise à jour de Catalina où mon appareil n'est plus détecté en mode sans échec. Je suis donc de retour à la case départ maintenant.
la source
J'ai trouvé les mêmes problèmes dans deux cas différents:
1) l'application n'est pas lancée par Xcode, c'est-à-dire que le drapeau "Attendre le lancement de l'exécutable" est défini dans le panneau Info des paramètres de l'exécution du schéma;
2) l'option "Lancer en raison d'un événement de récupération en arrière-plan" est sélectionnée dans les paramètres du schéma (mais ce n'est pas la valeur par défaut)
Xcode 11.2.1 (11B500)
la source
Dans mon cas (XCode 11.x, MacOS 10.15.2), j'ai trouvé que la lenteur extrême du débogueur n'est déclenchée que si je fais un pas alors qu'une autre opération en une seule étape est en cours , c'est-à-dire que j'appuie trop rapidement sur le bouton de pas. Ma solution actuelle est d'éviter de faire cela.
Pure spéculation, mais peut-être est-ce déclenché par XCode / LLDB essayant de desservir plusieurs points d'arrêt simultanément? Essayez de supprimer tous les points d'arrêt sauf un et voyez si cela aide les choses.
Au cas où c'est pertinent: je travaille principalement avec du C ++ dans XCode, avec un peu d'Obj-C ici et là. Je n'utilise pas du tout Swift pour le moment.
la source
Je fais face à cela depuis toujours et je l'ai finalement compris. C'était ces lignes dans mon fichier ~ / .lldbinit:
break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
J'ai commenté ces lignes et maintenant c'est presque aussi rapide que sans le débogueur!
la source
J'avais 238 points d'arrêt inutilisés. Lorsque je les ai supprimés, c'est à nouveau rapide (même avec les diagnostics activés.)
la source