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


319

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

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

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


9
Вы нажимали Shift три раза подряд?
Рей Гонзалес

1
Трудно понять, если я сделал то, что я должен сделать? Это то же самое, что переключение медленных анимаций? Если так, то я попытался переключить это несколько раз без какой-либо удачи.
Finglish

Нажмите Shift три раза снова. Да, это то же самое.
Рей Гонсалес

96
Нажмите CMD + T для переключения замедления
Доминик

Прежде чем задавать такие вопросы, посмотрите, что могло произойти. В окне вывода Xcodes вы видите «Включены медленные анимации», что, безусловно, является полезной подсказкой.
верни истину

Ответы:


803

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


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 ). Это сработало для меня, когда ни один из других ответов здесь не сделал. У кого-нибудь есть предложение, почему?

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


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, работающего на любых вкладках, не находящихся на переднем плане. Поэтому, если вы включили удаленную отладку, обязательно поместите отладчик в собственное окно.


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, как предложил кочевник .


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

1

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


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>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.