【问题标题】:iPhone Simulator suddenly started running very slowiPhone模拟器突然开始运行很慢
【发布时间】:2013-02-27 05:26:13
【问题描述】:

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

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

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

【问题讨论】:

  • 你连续按了 3 次 shift 吗?
  • 很难知道,如果我做了我该怎么办?这和切换慢速动画一样吗?如果是这样,我已经尝试多次切换,但没有任何运气。
  • 再按三下 shift。是的,它是一样的。
  • 按 CMD + T 切换减速
  • 在问这些问题之前,先看看会发生什么。在 Xcodes 输出窗口中,您会看到“Slow animations are now on”,这显然是有用的提示。

标签: ios macos ios-simulator osx-mountain-lion


【解决方案1】:

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

【讨论】:

  • 我试过了,但似乎没有任何区别。我也尝试在切换后重新启动,但它仍然很慢。此外,速度问题似乎不仅限于动画。
  • @Finglish 好吧,至少最可能的原因已经排除了。我不太确定还有什么问题。您是否有一个版本的源在它变慢之前与现在的源进行比较?从快速到现在有什么变化?
  • 不知道为什么会这样,但是我保存了,但是我制作了一个新的项目副本并重新运行了模拟器,它又恢复了全速。我不确定这是否只是巧合。
  • 哦,哇,这可能发生在很多人(包括我)身上,因为映射到 ⌘T ,所以如果你试图打开浏览器或终端选项卡,它可能会切换慢动画...... ..
  • @Smitty 这正是发生在我身上的事哈哈 :)
【解决方案2】:

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

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

【讨论】:

  • 我在 Chrome 上时不小心按下了那个组合键。大声笑(打开新标签)
  • 苹果真的应该考虑另一种键盘组合。
【解决方案3】:

进入模拟器的 Debug 菜单并选择“Toggle Slow Animations”。

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

【讨论】:

  • 我敢打赌,看到这个答案的每个人都会点击 cmd+T,以为他们在不同的应用程序中,然后开始出现缓慢的动画。 Apple 应该将 cmd+T 击键重新映射到更神秘、更不常用的方式。
【解决方案4】:

选择模拟器,

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

这对我有用。

【讨论】:

    【解决方案5】:

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

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

    【讨论】:

    • 这对我有用,但我也很好奇为什么。我正在使用 React Native 进行开发,我想知道我的应用程序是否开始使用 AsyncStorage 占用太多空间。这只是一个猜测。
    • 我已经尝试了所有方法,但没有任何方法可以解决我看到的缓慢问题它是 1 fps,大约需要 10 秒才能落地
    • 当前版本的 Xcode 不再提供此功能,但有一个 Hardware -> Erase All Content and Settings... 选项。
    • Hardware -> Erase All Content and Settings... 是票。
    【解决方案6】:

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

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

      • 能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?
      【解决方案8】:

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

      【讨论】:

      • Command + R 刷新。花 20 分钟试图弄清楚我是如何破坏我的应用程序的。重启我的Mac,不得已。来这里,学习新事物,享受快乐。
      【解决方案9】:

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

      那么,谢谢!

      【讨论】:

      • 由于 Xcode 中缺乏视觉反馈的额外信息而被投票
      【解决方案10】:

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

      【讨论】:

      • 停止远程调试解决了我的问题。谢谢!
      【解决方案11】:

      这不仅仅是关于慢速动画。 Xcode 模拟器在全球范围内具有极低的性能。这是苹果的错误。我已经通过Feedback Assistant 报告了它。 我用代码创建了演示,证明模拟器比任何旧的真实设备慢 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>

      【讨论】:

      • 更新:Apple 没有回复我的 Apple 反馈票2020 年 1 月 7 日上午 10:30 – FB7523875(我无法提供链接,因为包括非安全性在内的任何错误错误是不可见的 - 苹果的糟糕政策 - 没有人看到/知道有多少错误被报告并且多年来没有解决)但我刚刚在 Xcode v12.0.0 (12A7209) 中测试了这个错误,哇问题已经解决了!该测试现在可以在模拟器中快速运行,例如在真实的 iOS 设备中。
      【解决方案12】:

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

      【讨论】:

        【解决方案13】:

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

        【讨论】:

          猜你喜欢
          • 2012-04-21
          • 2012-02-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-05
          • 2010-11-29
          • 2011-04-25
          • 2013-12-29
          相关资源
          最近更新 更多