Симулятор iPhone неожиданно начал работать очень медленно

319

Я работал над приложением в симуляторе iphone несколько недель, и до сих пор оно работало хорошо, но внезапно стало работать очень медленно как при загрузке контента, так и при анимации. Я не вносил никаких изменений в свой код с тех пор, как последний раз успешно его тестировал.

Я попытался перезапустить симулятор (несколько раз), удалить приложение и сделать полностью чистую перестройку, но безуспешно. Я также проверил использование моего процессора через монитор во время работы симулятора, и я использую только около 30% своего процессора и 40% памяти.

Я полностью понимаю, что симулятор никогда не бывает быстрым, как само устройство, но кажется странным, что он неожиданно начал работать медленно после такого долгого времени, и под медленным я подразумеваю менее четверти его первоначальной скорости.

Finglish
источник
9
Вы нажимали Shift три раза подряд?
Рей Гонзалес
1
Трудно понять, если я сделал то, что я должен сделать? Это то же самое, что переключение медленных анимаций? Если так, то я попытался переключить это несколько раз без какой-либо удачи.
Finglish
Нажмите Shift три раза снова. Да, это то же самое.
Рей Гонсалес
96
Нажмите CMD + T для переключения замедления
Доминик
Прежде чем задавать такие вопросы, посмотрите, что могло произойти. В окне вывода Xcodes вы видите «Включены медленные анимации», что, безусловно, является полезной подсказкой.
верни истину

Ответы:

803

В симуляторе iOS на панели сверху нажмите DebugToggle Slow Animations(или Slow Animationsс Xcode 10+). Скорее всего, вы случайно включили его.

Metabble
источник
1
Я попробовал это, но это, кажется, не имеет никакого значения. Я также попытался перезагрузить после переключения, но это все еще очень медленно. Также проблема скорости не ограничивается анимацией.
Finglish
@Finglish Ну, по крайней мере, наиболее вероятная причина не в пути. Я не совсем уверен, что еще может быть не так. Есть ли у вас версия источника, до того как он замедлился, чтобы сравнить с источником сейчас? Что изменилось между тем, когда это было быстро и сейчас?
Metabble
1
Не уверен, почему это сработало, но я сохранил, но я сделал новую копию проекта и повторно запустил симулятор, и он вернулся на полную скорость. Я не уверен, что это просто совпадение.
Finglish
1
Ого это, скорее всего , происходит со многими (включая меня) из - за отображения на ⌘T, так что если вы пытаетесь открыть браузер или вкладку терминала это, вероятно , переключая медленные анимации ......
Смитти
1
@Smitty это именно то, что случилось со мной, ха-ха :)
DavidA
186

Простой Command+ Tрешит эту проблему.

Command+ Tпереключает симуляторы Slow Animations, которые можно найти в меню симулятора: Debug-> Slow Animations.

Тайлер Хак
источник
10
Я случайно нажал эту комбинацию клавиш, когда нахожусь на Chrome. LOL (открытие новой вкладки)
mr5
4
Apple действительно должна подумать о другой комбинации клавиш.
sonlexqt
165

Перейдите в меню отладки симулятора и выберите «Переключить медленную анимацию».

Обновление: в Xcode 10 это просто "Slow Animations":

Меню отладки симулятора

Калеб
источник
6
Я держал пари, что каждый, кто смотрел на этот ответ, нажимал на cmd + T, думая, что он был в другом приложении, а затем начал получать медленную анимацию. Apple следует переназначить комбинацию клавиш cmd + T на более загадочный и менее часто используемый.
cs01
57

Выберите симулятор,

Выберите «Отладка» и снимите флажок медленной анимации.
комбинация клавиш + t

Это работа для меня.

Урвиш Моди
источник
38

Если опция Cmd-T (медленная анимация) у вас не работает и Debug -> Slow Animationsвыключена, но у вас все еще есть медленная анимация, попробуйте Simulator -> Reset Contents and Settings(или, возможно,Hardware -> Erase All Content and Settings ). Это сработало для меня, когда ни один из других ответов здесь не сделал. У кого-нибудь есть предложение, почему?

Кроме того, при наличии отладчика (вообще) присоединение анимации может быть очень медленным.

jcollum
источник
1
Это сработало для меня, но мне также любопытно, почему. Я занимаюсь разработкой в ​​React Native и думаю, что мое приложение стало занимать слишком много места с помощью AsyncStorage. Это всего лишь предположение.
кочевник
Я перепробовал все, но ничто не исправляет медлительность, которую я вижу. Я вижу быстрые анимации, но медленное движение, как в сценическом наборе, у меня падает шар, и он идет так медленно, что вы можете видеть, как он движется, как 1 кадр / с, и занимает около 10 сек, чтобы ударить пол
Repardeimaj
Это больше не доступно с текущей версией XCode, но есть Hardware -> Erase All Content and Settings...опция.
кочевник
1
Hardware -> Erase All Content and Settings...это билет.
кочевник
Это не помогает в моем случае stackoverflow.com/a/59626207/3826175
mikep
32

Еще одно потенциальное исправление для пользователей React-Native:

Chrome отменяет приоритеты Javascript, работающего на любых вкладках, не находящихся на переднем плане. Поэтому, если вы включили удаленную отладку, обязательно поместите отладчик в собственное окно.

Brandon
источник
29

Вы случайно нажали медленную анимацию при отладке при использовании симулятора. Так что Run Simulator -> Debug -> Uncheck Slow Animation.

Дигвиджай Раджпут
источник
Не могли бы вы более подробно изложить свой ответ, добавив немного больше описания предлагаемого вами решения?
abarisone
13

Я думаю, что вы нажали команду + T вместо команды + R по ошибке.

Саад Ур Рехман
источник
1
Ctrl + R, чтобы обновить. Потратьте 20 минут, пытаясь понять, как я испортил свое приложение. Перезагрузите мой Mac, последнее средство. Иди сюда, узнай что-то новое и радуйся.
Громовая Лошадь
7

У меня пока нет представителя, чтобы оставить комментарий, но я проголосовал здесь за некоторые ответы и хотел сказать больше. У меня была проблема с медленной анимацией в iOS Simulator, особенно с ротацией, и я нашел этот пост через Google. В самом деле, так или иначе, «Toggle Slow Animations», должно быть, был включен, потому что три смены исправили это. Сначала я не думал, что это было проблемой, потому что рядом с «Toggle Slow Animations» нет галочки. Оказывается, в меню нет ни галочки, ни каких-либо указаний на то, включена она или выключена. Так что просто попробуйте включить его и посмотреть, будет ли вращение / навигация быстрее / медленнее.

Так что спасибо тебе!

Джефф Хом
источник
Проголосовал из-за дополнительной информации об отсутствии визуальной обратной связи в Xcode
Пол Уолдо
5

Симулятор -> Сбросить содержимое и настройки у меня работает. Проблема, кажется, появляется снова, когда я отлаживаю свой реактивный код удаленно. Это также может быть связано с AsyncStorage, как предложил кочевник .

smmaca
источник
1
Остановка удаленной отладки - вот что исправило мою проблему. Спасибо!
Liquidpenguins
1

Вы можете попробовать отключить удаленную отладку (Cmd-D -> Stop Remote JS Debugging). Это обычно ускоряет ход вещей.

Heinrisch
источник
0

Когда отладка Chrome активна, а вкладка браузера не находится на переднем плане, эмулятор также работает медленно. Для меня я решил поставить руководство на передний план.

Жозимар
источник
-1

Это не только медленная анимация. Симулятор XCode имеет крайне низкую производительность в глобальном масштабе. Это ошибка Apple. Я сообщил об этом через Feedback Assistant . Я создал демо с кодом, демонстрирующим, что симулятор работает в 200 раз медленнее, чем любое старое реальное устройство. Я обнаружил, что код JavaScript с объектом Date, выполняемым в WKWebView, - боль для симулятора. Изменение параметров в симуляторе не помогает в моем случае. Смотри jsfiddle https://jsfiddle.net/kjms16cw/ Я надеюсь, что Apple исправит это в ближайшее время!

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
источник