iPhone Simulator a soudainement commencé à fonctionner très lentement


319

Je travaille sur une application dans le simulateur d'iphone depuis un certain nombre de semaines et elle a bien fonctionné jusqu'à présent, mais tout d'un coup a commencé à fonctionner très lentement à la fois lors du chargement de contenu et d'animations. Je n'ai apporté aucune modification à mon code depuis le dernier test réussi.

J'ai essayé de redémarrer le simulateur (plusieurs fois) et de supprimer l'application et de faire une reconstruction complètement propre, mais pas de chance. J'ai également vérifié mon utilisation du processeur via le moniteur pendant le fonctionnement du simulateur et j'utilise seulement environ 30% de mon processeur et 40% de la mémoire.

Je comprends parfaitement que le simulateur n'est jamais aussi rapide que l'appareil lui-même, mais il semble étrange qu'il ait soudainement commencé à fonctionner lentement après une si longue période, et par lent, je veux dire moins d'un quart de sa vitesse d'origine.


9
Avez-vous appuyé sur shift trois fois de suite?
Rey Gonzales

1
Difficile à savoir, si je faisais quoi faire? Est-ce la même chose que Basculer les animations lentes? Si c'est le cas, j'ai essayé de basculer cela plusieurs fois sans aucune chance.
Finglish

Appuyez à nouveau trois fois sur shift. Oui, c'est pareil.
Rey Gonzales

96
Appuyez sur CMD + T pour basculer le ralentissement
Dominic

Avant de poser de telles questions, regardez ce qui aurait pu arriver. Dans la fenêtre de sortie Xcodes, vous voyez "Les animations lentes sont maintenant activées", ce qui est clairement l'indication utile ici.
retour vrai

Réponses:


803

Dans le simulateur iOS, dans la barre en haut, cliquez sur DebugToggle Slow Animations(ou Slow Animationsavec Xcode 10+). Il y a de fortes chances que vous l'ayez accidentellement activé.


1
J'ai essayé mais cela ne semble faire aucune différence. J'ai également essayé de redémarrer après avoir basculé, mais c'est toujours très lent. De plus, le problème de vitesse ne semble pas se limiter à l'animation.
Finglish

@Finglish Eh bien, au moins la cause la plus probable est à l'écart. Je ne sais pas trop quoi d'autre pourrait être mal. Avez-vous une version de la source avant qu'elle ne ralentisse pour se comparer à la source maintenant? Qu'est-ce qui a changé entre quand c'était rapide et maintenant?
Metabble

1
Je ne sais pas pourquoi cela a fonctionné, mais j'ai enregistré mais j'ai fait une nouvelle copie du projet et relancé le simulateur et il est de retour à pleine vitesse. Je ne suis pas sûr que ce soit juste une coïncidence.
Finglish

1
Oh wow, cela arrive probablement à beaucoup (y compris moi) à cause du mappage vers ⌘T, donc si vous essayez d'ouvrir un navigateur ou un onglet de terminal, il bascule probablement des animations lentes ......
Smitty

1
@Smitty c'est exactement ce qui m'est arrivé haha ​​:)
DavidA

186

Simple Command+T résoudra ce problème.

Command+ Tbascule le simulateur Slow Animations, qui peut être trouvé sous le menu du simulateur: Debug-> Slow Animations.


10
J'ai accidentellement appuyé sur cette combinaison de touches pendant que je suis sur le Chrome. lol (ouverture d'un nouvel onglet)
mr5

4
Apple devrait vraiment penser à une autre combinaison de claviers.
sonlexqt

165

Allez dans le menu Debug du simulateur et sélectionnez "Toggle Slow Animations".

Mise à jour: Dans Xcode 10, c'est juste des "animations lentes":

Menu de débogage du simulateur


6
Je parie que chaque personne regardant cette réponse a frappé cmd + T en pensant qu'ils étaient dans une application différente, puis a commencé à obtenir des animations lentes. Apple devrait remapper la touche cmd + T à quelque chose de beaucoup plus mystérieux et moins couramment utilisé.
cs01

57

Sélectionnez Simulator,

Sélectionnez Déboguer et décochez l'animation lente.
commande de raccourci + t

C'est du travail pour moi.


38

Si l'option Cmd-T (animations lentes) ne fonctionne pas pour vous et Debug -> Slow Animationsest désactivée mais que vous avez toujours des animations lentes, essayez Simulator -> Reset Contents and Settings(ou éventuellement Hardware -> Erase All Content and Settings). Cela a fonctionné pour moi quand aucune des autres réponses ici ne l'a fait. Quelqu'un a-t-il une suggestion pour savoir pourquoi?

Le fait d'avoir un débogueur attaché (du tout) peut également ralentir les animations.


1
Cela a fonctionné pour moi, mais je suis également curieux de savoir pourquoi. Je développe en React Native et je me demande si mon application a commencé à prendre trop de place avec AsyncStorage. C'est juste une supposition.
nomade

j'ai tout essayé mais rien ne corrige la lenteur que je vois je vois des animations rapides mais des mouvements lents, comme dans le kit de scène j'ai une balle qui tombe et elle va si lentement que vous pouvez la voir bouger comme si elle était à 1 fps et prend environ 10 sec pour toucher le sol
Repardeimaj

Ce n'est plus disponible avec la version actuelle de Xcode, mais il y a une Hardware -> Erase All Content and Settings...option.
nomade

1
Hardware -> Erase All Content and Settings...est le ticket.
nomade

Cela n'aide pas dans mon cas stackoverflow.com/a/59626207/3826175
mikep

32

Un autre correctif potentiel pour les utilisateurs React-Native:

Chrome ne priorise pas Javascript dans tous les onglets qui ne sont pas au premier plan. Donc, si vous avez activé le débogage à distance, assurez-vous de placer le débogueur dans sa propre fenêtre.


29

Vous avez accidentellement appuyé sur l'animation lente lors du débogage lors de l'utilisation du simulateur. Exécutez donc Simulator -> Debug -> Uncheck Slow Animation.


Pourriez-vous élaborer davantage votre réponse en ajoutant un peu plus de description sur la solution que vous proposez?
abarisone

13

Je pense que vous avez appuyé sur commande + T au lieu de commande + R par erreur.


1
Commande + R pour rafraîchir. Passez 20 minutes à essayer de comprendre comment j'ai ruiné mon application. Redémarrez mon Mac, le dernier recours. Venez ici, apprenez quelque chose de nouveau et réjouissez-vous.
ThunderHorse

7

Je n'ai pas encore de représentant pour laisser un commentaire, mais j'ai surévalué certaines réponses ici et je voulais en dire plus. J'ai eu un problème avec les animations lentes dans le simulateur iOS, en particulier sur la rotation, et j'ai trouvé ce message via Google. En effet, "Toggle Slow Animations" devait en quelque sorte être activé, car trois changements le fixaient. Au début, je ne pensais pas que c'était un problème car il n'y avait pas de coche à côté de "Basculer les animations lentes". Il s'avère qu'il n'y a jamais de coche ou d'indication dans le menu, qu'elle soit activée ou désactivée. Essayez donc de le basculer et voyez si la rotation / navigation est plus rapide / plus lente.

Alors merci!


Surévalué en raison de l'info supplémentaire sur le manque de rétroaction visuelle dans Xcode
Paul Waldo

5

Le simulateur -> Réinitialiser le contenu et les paramètres fonctionne pour moi. Le problème semble réapparaître lorsque je débogue mon code natif réactif à distance. Cela pourrait également être lié à AsyncStorage, comme l'a suggéré le nomade .


1
Arrêter le débogage à distance est ce qui a résolu mon problème. Merci!
liquidpenguins

1

Vous pouvez essayer de désactiver le débogage distant (Cmd-D -> Arrêter le débogage JS distant). Cela accélère généralement les choses.


0

Lorsque le débogage Chrome est actif et que l'onglet du navigateur n'est pas au premier plan, l'émulateur est également lent. Pour moi, j'ai décidé de mettre le guide au premier plan.


-1

Il ne s'agit pas seulement d'animations lentes. Le simulateur Xcode a des performances extrêmement faibles dans le monde. C'est le bug d'Apple. Je l'ai signalé via Feedback Assistant . J'ai créé une démo avec du code démontrant que le simulateur est 200 fois plus lent que n'importe quel ancien appareil réel. J'ai trouvé que le code JavaScript avec l'objet Date exécuté dans WKWebView est pénible pour le simulateur. Changer les options dans le simulateur n'aide pas dans mon cas. Voir jsfiddle https://jsfiddle.net/kjms16cw/ J'espère qu'Apple le corrigera bientôt!

var log = document.getElementById("log");
document.getElementById("button").onclick = function() { run(); };

function run() {
	var d1 = new Date();
	for (var i = 0; i < 1000; i++) {
		var x = new Date();
		x.setMilliseconds(0);
		x.setSeconds(0);
		x.setMinutes(0);
	}
	var d2 = new Date();
	log.innerHTML = ((d2.getTime() - d1.getTime()) / 1000) + " seconds";
}
<h3>Xcode Simulator Extremely Low Performance</h3>
<p>This test runs fast (several tens milliseconds e.g. 30 ms)
in any browser any device any platform including very old iOS device
e.g. iPhone 5C and several years old iPad 2, BUT IN SIMULATOR IT TAKES 6000 ms 
(yes, 6 seconds!). Terrible!</p>
<button id="button">run()</button>
<div id="log"></div>

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.