O iPhone Simulator de repente começou a correr muito devagar

319

Estou trabalhando em um aplicativo no simulador de iphone há várias semanas e ele está funcionando bem até agora, mas de repente começou a ficar muito lento, tanto ao carregar o conteúdo quanto as animações. Não fiz alterações no meu código desde a última vez que o testei com sucesso.

Tentei reiniciar o simulador (várias vezes) e remover o aplicativo e fazer uma reconstrução completamente limpa, mas sem sorte. Também verifiquei o uso da minha CPU através do monitor enquanto o simulador está em execução e estou usando apenas cerca de 30% da minha CPU e 40% da memória.

Entendo perfeitamente que o simulador nunca é tão rápido quanto o próprio dispositivo, mas parece estranho que, de repente, ele tenha começado a correr devagar depois de tanto tempo, e com devagar, quero dizer menos de um quarto da velocidade original.

Finglish
fonte
9
Você pressionou shift três vezes seguidas?
Re
1
Difícil saber, se eu fiz o que devo fazer? É o mesmo que alternar animações lentas? Nesse caso, tentei alternar isso várias vezes sem sorte.
Finglish
Pressione Shift três vezes novamente. Sim, é o mesmo.
Re
96
Imprensa CMD + T para alternar abrandar
Dominic
Antes de fazer essas perguntas, veja o que poderia ter acontecido. Na janela de saída do Xcodes, você vê "Animações lentas agora estão ativadas", o que claramente é a dica útil aqui.
return true

Respostas:

803

No simulador do iOS, na barra na parte superior, clique em DebugToggle Slow Animations(ou Slow Animationscom o Xcode 10+). Provavelmente, você acidentalmente o ativou.

Metabble
fonte
1
Eu tentei isso, mas não parece fazer nenhuma diferença. Também tentei reiniciar após alternar, mas ainda é muito lento. Além disso, o problema de velocidade não parece estar limitado à animação.
Finglish
@ Fishlish Bem, pelo menos a causa mais provável está fora do caminho. Não tenho certeza do que mais pode estar errado. Você tem uma versão da fonte anterior à desaceleração para comparar com a fonte agora? O que mudou entre quando era rápido e agora?
Metabble 11/03/13
1
Não sei por que isso funcionou, mas salvei, mas fiz uma nova cópia do projeto e refiz o simulador, e ele voltou à velocidade máxima. Não tenho certeza se isso é apenas uma coincidência.
Finglish
1
Oh wow isso é provável acontecer a muitos (inclusive eu) por causa do mapeamento para ⌘T, por isso, se você está tentando abrir um navegador ou guia do terminal é provavelmente alternando animações lentas ......
Smitty
1
@Smitty este é exatamente o que aconteceu para mim haha :)
Davida
186

Simples Command+ Tcorrigirá esse problema.

Command+ Talterna o simulador Slow Animations, que pode ser encontrado no menu Simulador: Debug-> Slow Animations.

Tyler Hack
fonte
10
Pressionei acidentalmente essa combinação de teclas enquanto estou no Chrome. lol (abrindo nova guia)
MR5
4
A Apple deve realmente pensar em outra combinação de teclado.
sonlexqt
164

Vá para o menu Debug do simulador e selecione "Alternar animações lentas".

Atualização: No Xcode 10, são apenas "Slow Animations":

Menu Debug do simulador

Caleb
fonte
6
Aposto que todas as pessoas que olham para essa resposta atingiram o cmd + T pensando que estavam em um aplicativo diferente e começaram a receber animações lentas. A Apple deve remapear as teclas cmd + T para algo muito mais misterioso e menos usado.
CS01
57

Selecione Simulador,

Selecione Depurar e desmarque a animação lenta.
comando de atalho + t

Isso é trabalho para mim.

Urvish Modi
fonte
38

Se a opção Cmd-T (animações lentas) não funcionar para você e Debug -> Slow Animationsestiver desativada, mas você ainda tiver animações lentas, tente Simulator -> Reset Contents and Settings(ou possivelmente Hardware -> Erase All Content and Settings). Isso funcionou para mim quando nenhuma das outras respostas aqui funcionou. Alguém tem uma sugestão de por quê?

Também ter um depurador conectado (de todo) pode tornar as animações muito lentas.

jcollum
fonte
1
Isso funcionou para mim, mas também estou curioso por quê. Estou desenvolvendo no React Native e me pergunto se meu aplicativo começou a ocupar muito espaço com o AsyncStorage. Isso é apenas um palpite.
Nó #
Eu tentei de tudo, mas nada corrige a lentidão que estou vendo, estou vendo animações rápidas, mas movimento lento, como no kit de cena, tenho uma bola caindo e fica tão lenta que você pode vê-la se mover como se fosse 1 fps e leva 10 seg a bater no chão
Repardeimaj
Isso não está mais disponível na versão atual do Xcode, mas existe uma Hardware -> Erase All Content and Settings...opção.
Nó #
1
Hardware -> Erase All Content and Settings...é o bilhete.
Nó #
Não ajuda no meu caso stackoverflow.com/a/59626207/3826175
mikep
32

Outra correção em potencial para usuários do React-Native:

O Chrome des prioriza o Javascript em execução em qualquer guia que não esteja em primeiro plano. Portanto, se você ativou a depuração remota, coloque o depurador em sua própria janela.

Brandon
fonte
29

Você acidentalmente pressionou a animação lenta na depuração ao usar o simulador. Execute o Simulador -> Depurar -> Desmarque Animação Lenta.

Digvijay Rajput
fonte
Você poderia elaborar mais sua resposta adicionando um pouco mais de descrição sobre a solução que você fornece?
abarisone
13

Eu acho que você pressionou comando + T em vez de comando + R por engano.

Saad Ur Rehman
fonte
1
Command + R para atualizar. Passe 20 minutos tentando descobrir como eu estraguei meu aplicativo. Reinicie o meu Mac, o último recurso. Venha aqui, aprenda algo novo e se alegre.
precisa
7

Ainda não tenho o representante para deixar um comentário, mas votei aqui com algumas respostas e queria dizer mais. Eu tive um problema com animações lentas no iOS Simulator, especialmente na rotação, e encontrei esta postagem no Google. De fato, de alguma forma, "Alternar animações lentas" deve estar ativado, porque três turnos a consertaram. No começo, não achei que fosse um problema, porque não há uma marca de seleção ao lado de "Alternar animações lentas". Acontece que nunca há uma marca de seleção ou qualquer indicação no menu, seja ela ativada ou desativada. Portanto, tente alterná-lo e veja se a rotação / navegação é mais rápida / mais lenta.

Então obrigado!

Geoff Hom
fonte
Upvoted por causa da informação extra sobre a falta de feedback visual no Xcode
Paul Waldo
5

Simulador -> Redefinir conteúdo e configurações funciona para mim. O problema parece reaparecer quando depuro remotamente meu código nativo de reação. Também pode ter a ver com o AsyncStorage, como o nômade sugeriu .

smmaca
fonte
1
Parar a depuração remota foi o que corrigiu meu problema. Obrigado!
liquidpenguins
1

Você pode tentar desativar a depuração remota (Cmd-D -> Stop Remote JS Debugging). Isso geralmente acelera as coisas.

Heinrisch
fonte
0

Quando a depuração do chrome está ativa e a guia do navegador não está em primeiro plano, o emulador também fica lento. Para mim, decidi colocar o guia em primeiro plano.

Josimar
fonte
-1

Não se trata apenas de animações lentas. O simulador Xcode tem desempenho extremamente baixo no mundo. É o bug da Apple. Eu relatei isso através do Assistente de Feedback . Eu criei demo com código demonstrando que o simulador é 200 vezes mais lento que qualquer dispositivo real antigo. Eu descobri que o código JavaScript com o objeto Date executado no WKWebView é um problema para o simulador. Alterar as opções no simulador não ajuda no meu caso. Veja jsfiddle https://jsfiddle.net/kjms16cw/ Espero que a Apple conserte isso em breve!

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>

mikep
fonte