在使用Xcode 6中的iOS 8模拟器时,应用程序表现缓慢。

15
升级到xcode 6后,我发现在iOS模拟器下运行我的应用程序时,无论我选择iPhone还是iPad,在iOS 8下运行都非常缓慢。但如果我选择在iOS 7下运行,则正常运行。 我认为这是一个与应用程序/编码相关的问题,所以我尝试将其部署在我的iOS8 iPad上,奇怪的是,应用程序正常运行,不像模拟器那样缓慢。 有没有人在SO上遇到过这个问题?

2
绝对的,我也遇到了这个问题。 - Roopesh Shenoy
4个回答

29

确保在 iOS 模拟器的“调试”选项卡下未选择“慢速动画”。这对我解决了问题。可能是意外打开的。


我的问题也解决了!谢谢!我从来没有想过这个……在我的情况下可能是意外启用了它…… - Baris Yazganc
我花了一整天的时间来调试这个问题。显然,我开启了“缓慢动画”选项。FML - bodacious

10

如果你在选择模拟器时按下⌘T,它将开启“慢速动画”,使所有内容都变慢。⌘T通常用于打开新的浏览器标签页,所以请确保你选择的是浏览器而不是模拟器。


1
这是正确的答案。慢动画会让事情变得非常困难,关闭它们,你的生活将变得无限美好。 ;) - augurone
非常准确。这使得每个动画弹出窗口的响应速度都更快了! - Shaahin Sh

7

iOS模拟器的性能不会与设备上的性能相匹配。iOS模拟器是用于快速原型设计和快速迭代的工具。性能调优需要在真实设备上进行。

在iOS模拟器中运行的进程基本上是在特殊构建的运行时内运行的OS X进程,以便表现得像iOS而不是OS X。在过去的四年中,这已经从基本上是UIKit和类似的iOS框架构建在OS X框架之上,发展到现在拥有自己的引导服务器(自iOS 7起),自己的dyld(自iOS 8起),并且仅共享主机内核和非常低级别的系统库(从iOS 7起为libSystem,并且只是libSystem的pthread、syscalls和平台子库,从iOS 8起)。

当您在未启动当前设备的设备上测试应用程序时,我们关闭该设备并启动新设备,这个过程可能需要10秒钟到1-2分钟,主要取决于您的磁盘I/O带宽以及您的系统上的其他任务需求。

如果您在已经启动一段时间且没有任何明显后台任务正在运行(编译、rsync等)的sim设备上看到主要性能问题,请进行sysdiagnose,并查看旋转转储中的模拟器进程和fs_usage,以了解可能正在发生的情况。


6
谢谢解释。自从我的2009年底的iMac升级到iOS 8/Xcode 6之后,使用模拟器变得异常缓慢(是的,是的,我知道是时候升级了)。事实上,除非我需要从模拟器中获取特定内容,否则我已经几乎完全转向使用设备来进行测试。 - Sea Coast of Tibet
1
由于启动过程主要受I/O限制,因此将硬盘驱动器更换为固态硬盘(SSD)可能是值得投资的选择(特别是考虑到黑色星期五/网络星期一的促销活动)。我已经这样做了,它带来了天翻地覆的变化。 - Jeremy Huddleston Sequoia
2
iOS模拟器的性能应该比设备快得多。您的计算机比iPhone强大得多。这个答案并没有真正解释为什么这个曾经快速(并且是其他移动平台的竞争优势)的工具最近变得如此糟糕。运行Hello World程序不应该需要SSD才能迅速完成。 - Nate
此外,你的“Hello World”应用程序仍然需要整个操作系统先启动。一旦启动,它应该非常响应。 - Jeremy Huddleston Sequoia
我不确定你所说的“keeps this up”是什么意思?你在抱怨什么问题?iOS模拟器和Android模拟器是两个完全不同的东西,具有不同的设计范例。在你的系统上,模拟设备的启动时间到底是多少?在我的系统上,它大约需要5-10秒钟来启动整个设备,这似乎是一个完全合理的启动时间。 - Jeremy Huddleston Sequoia
显示剩余5条评论

0

性能模拟和设备是两回事。我认为你不应该关注它。这个错误可以优化苹果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接