iPhone模拟器突然开始运行非常缓慢


319

我已经在iphone模拟器中开发了一个应用程序数周,并且直到现在它一直运行良好,但是突然之间,在加载内容和动画时开始运行非常缓慢。自上次成功测试以来,我尚未对代码进行任何更改。

我尝试重新启动模拟器(多次)并删除应用程序,并进行了完全干净的重建,但是没有运气。我还在模拟器运行时通过监视器检查了CPU的使用情况,而我只使用了大约30%的CPU和40%的内存。

我完全理解模拟器永远不会像设备本身那样快速,但是奇怪的是,经过这么长的时间后,它突然开始缓慢运行,而缓慢意味着我的速度还不到其原始速度的四分之一。


9
您是否连续三按了shift键?
雷伊·冈萨雷斯

1
很难知道,如果我做了我应该怎么做?这与切换慢速动画一样吗?如果是这样,我已经尝试过几次没有任何运气。
Finglish

再按一次shift键三下。是的,是一样的。
Rey Gonzales 2013年

96
按CMD + T可以切换慢速
多米尼克

在问这样的问题之前,先看看会发生什么。在Xcodes输出窗口中,您会看到“慢速动画现在已打开”,这显然是有用的提示。
返回真实

Answers:


803

在iOS模拟器的顶部栏上,单击DebugToggle Slow Animations(或Slow Animations使用Xcode 10+)。您可能不小心将其打开了。


1
我试过了,但似乎没有什么区别。切换后,我也尝试重新启动,但是仍然很慢。同样,速度问题似乎不仅限于动画。
Finglish

@Finglish好吧,至少最可能的原因已经解决了。我不太确定还有什么问题。您是否有某个版本的源代码,它的速度放慢了才能与现在的源代码进行比较?从快速到现在之间发生了什么变化?
Metabble

1
不知道为什么这行得通,但是我保存了,但是我制作了项目的新副本并重新运行了模拟器,它又恢复了全速。我不确定这是否只是巧合。
Finglish

1
噢,由于映射到⌘T,这很可能发生在许多人(包括我)身上,因此,如果您尝试打开浏览器或终端选项卡,则可能切换慢速动画……
Smitty

1
@Smitty这正是发生在我身上的东西哈哈:)
DavidA

186

简单Command+ T将解决此问题。

Command+ T切换模拟器的Slow Animations,可以在“模拟器菜单”下找到:Debug-> Slow Animations


10
在Chrome上时,我不小心按下了该组合键。大声笑(打开新标签页)
mr5

4
苹果真的应该考虑另一种键盘组合。
sonlexqt

164

转到模拟器的“调试”菜单,然后选择“切换慢速动画”。

更新:在Xcode 10中,它只是“慢速动画”:

模拟器调试菜单


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 fps一样移动,需要10秒上楼
Repardeimaj

当前版本的Xcode不再提供此功能,但是有一个Hardware -> Erase All Content and Settings...选项。
nomad

1
Hardware -> Erase All Content and Settings...是票。
游牧民

它对我的情况没有帮助stackoverflow.com/a/59626207/3826175
mikep

32

针对React-Native用户的另一个潜在解决方案:

Chrome浏览器会取消优先处理在前台未显示的任何标签中运行的Java脚本的优先级。因此,如果启用了远程调试,请确保将调试器放在其自己的窗口中。


29

您在使用模拟器时不小心在调试时按下了慢速动画。因此,运行模拟器->调试->取消选中慢动画。


您能否详细说明您的答案,并提供有关您提供的解决方案的更多说明?
abarisone 2015年


7

我没有代表要发表评论,但是我在这里提出了一些答案,并想说更多。我在iOS Simulator中遇到动画缓慢的问题,尤其是在旋转时,我通过Google找到了这篇文章。确实,必须以某种方式启用“切换慢速动画”,因为三班制已将其固定。最初,我认为这不是问题,因为“切换慢动画”旁边没有复选标记。事实证明,这里永远不会有复选标记,也不会在菜单中显示任何标记(无论该标记是打开还是关闭)。因此,只需尝试切换它,看看旋转/导航是否更快/更慢。

所以谢谢!


Upvoted因为大约在Xcode缺乏视觉反馈的额外的信息
保罗·沃尔多


1

您可以尝试关闭远程调试(Cmd-D->停止远程JS调试)。通常可以加快速度。


0

当chrome调试处于活动状态并且浏览器选项卡不在前台时,模拟器也很慢。对于我来说,我决定将指南放在最前面。


-1

这不仅涉及慢速动画。Xcode模拟器在全球范围内的性能极低。这是苹果的错误。我已经通过反馈助手报告了它。我用代码创建了演示,演示了模拟器比任何旧的真实设备慢200倍。我发现在WKWebView中执行带有Date对象的JavaScript代码对于模拟器来说是很痛苦的。在我的情况下,更改模拟器中的选项无济于事。请参阅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>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.