334

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

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

我完全理解模拟器从来没有像设备本身那么快,但它在这么长的时间后突然开始运行缓慢似乎很奇怪,我所说的慢是指不到它原来速度的四分之一。

4

13 回答 13

814

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

于 2013-03-11T21:11:25.157 回答
186

简单的Command+T将解决这个问题。

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

于 2015-07-07T17:18:56.667 回答
169

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

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

模拟器调试菜单

于 2013-03-11T21:11:16.330 回答
56

选择模拟器,

选择调试并取消选中慢动画。
快捷命令 + t

这对我有用。

于 2017-08-16T05:29:09.677 回答
41

如果 Cmd-T(慢速动画)选项对您不起作用并且Debug -> Slow Animations已关闭,但您仍然有慢速动画,请尝试Simulator -> Reset Contents and Settings(或可能Hardware -> Erase All Content and Settings)。当这里没有其他答案时,这对我有用。有人对为什么有建议吗?

还附加了一个调试器(完全)可能会使动画非常慢。

于 2016-10-27T00:45:52.867 回答
33

React-Native 用户的另一个潜在修复:

Chrome 会取消在前台以外的任何选项卡中运行的 Javascript 的优先级。因此,如果您启用了远程调试,请务必将调试器放在自己的窗口中。

于 2016-11-07T02:56:18.753 回答
29

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

于 2015-06-10T13:51:20.537 回答
13

我认为您错误地按下了 command + T 而不是 command + R 。

于 2013-11-07T08:15:53.493 回答
8

我还没有代表发表评论,但我在这里提出了一些答案并想说更多。我在 iOS 模拟器中遇到了动画缓慢的问题,尤其是在旋转时,我通过 Google 找到了这篇文章。确实,不知何故“切换慢速动画”一定是打开了,因为三班倒修复了它。起初,我不认为这是一个问题,因为“切换慢速动画”旁边没有复选标记。事实证明,菜单上从来没有复选标记,也没有任何指示,无论它是打开还是关闭。所以只需尝试切换它,看看旋转/导航是否更快/更慢。

所以谢谢!

于 2013-04-24T21:42:15.327 回答
6

模拟器->重置内容和设置对我有用。当我远程调试我的 react-native 代码时,这个问题似乎再次出现。正如nomad 建议的那样,它也可能与 AsyncStorage 有关。

于 2016-10-31T06:23:08.337 回答
2

这不仅仅是关于慢动画。Xcode 模拟器在全球范围内具有极低的性能。这是苹果的错误。我已经通过反馈助手报告了它。我用代码创建了演示,演示模拟器比任何旧的真实设备慢 200 倍。我发现在 WKWebView 中执行的带有 Date 对象的 JavaScript 代码对模拟器来说很痛苦。在我的情况下,更改模拟器中的选项无济于事。见 jsfiddle https://jsfiddle.net/kjms16cw/希望苹果能尽快修复!

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>

于 2020-01-07T10:05:48.030 回答
1

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

于 2018-10-02T06:45:38.300 回答
0

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

于 2017-11-06T15:45:03.903 回答