【问题标题】:Simulator on Xcode 10 became terribly slowXcode 10 上的模拟器变得非常慢
【发布时间】:2018-09-20 17:13:50
【问题描述】:

在 Xcode 9 上一切正常。但是在更新到 Xcode 10 后,模拟器开始出现巨大的延迟。超级简单的动画以 2 fps 运行,整个 Mac OS 非常慢,而模拟器上的动画正在运行。有人知道会发生什么以及如何解决吗?任何应用程序或任何标准 iOS 应用程序都一样慢。

解释——我可以用 Command⌘ + T 切换的不是慢动作。我说的是巨大的滞后。当 UIView 飞行时,它会突然出现在另一个位置。不流畅的慢动画。 2 fps 不是慢动作。它是相同的快速动作,但速度为 2 FPS!

【问题讨论】:

  • 试试 iOS 9.1 模拟器。当 iOS 10 和 12 只有 2-3fps 时,它至少显示 10fps

标签: ios ios-simulator xcode10


【解决方案1】:

下载iOS11.4模拟器试试看。缺点是您无法测试 iOS12。但至少你可以在 Xcode 10 上工作并发布应用程序。 注意:不要费心去获取 Xcode 9.4.1。或者其他版本。它不会解决问题。 诀窍是在您第一次运行 Xcode 10 后,它会将新的 coresimulator 框架安装到您的根文件夹中。

【讨论】:

  • 嘿,保罗。谢谢你的建议。但不幸的是 11.4 Simulator 现在和 12.0 Simulator 有同样的麻烦。我认为重点可能在于 new Xcode(((
  • 我刚试过。你说的对。同样的问题。一些开发人员在使用 Time Machine 回滚 ~/Library/Developer/PrivateFrameworks/CoreSimulator.framework 后说,他们解决了这个问题。我没有这个选项,因为我没有备份我的机器。下一步将重新安装 MacBook。
  • 这也是我所做的,并且大胆地加快了速度。来到这里希望有一个更好的解决方案 :-( 希望 Apple 会尽快修补。
  • 您是否正在运行 macOS Mojave(版本 10.14 Beta)?我遇到了同样的问题,它正在扼杀我的生产力。尚未找到任何解决方案,但我正在搜索不同的论坛,如果我找到一个@Paul,我会发布一个可行的解决方案
  • 不,我正在运行最新的 maxOS。
【解决方案2】:

对我有用的是在模拟器菜单的 Debug > Graphics Quality Override 中切换值。 令人惊讶的是,在从“设备默认”设置为“低”后,延迟消失了,现在任何值都像魅力一样发挥作用。

【讨论】:

    【解决方案3】:

    我有同样的问题,这解决了它:

    defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint X  
    

    X 在哪里:

    0 = 自动

    1 = 金属

    2 = OpenCL

    3 = OpenGL

    【讨论】:

    • 我也尝试过,但没有找到一些单行,但很难找到解决我的问题的 X 值。我在这里给出列表是为了让人们选择一个正确的值来解释该值的含义。
    • X = 3 确实有帮助,iOS sim 12
    【解决方案4】:

    升级到 XCode10 后,我遇到了与此处描述的完全相同的问题。每次我打开模拟器,无论是 IphoneX 还是 Iphone SE,我的 mac 几乎都爬到了停止状态,模拟器以几 FPS 的速度运行。

    以下操作无效:

    • FramebufferRendererHint 设置
    • 重置模拟器
    • 重新安装 xcode
    • 创建了新用户
    • 删除 Xcode 10 并安装 XCode9
    • 删除 CoreSimulator.framework 并安装新的模拟器

    终于奏效了:

    • 使用 Time Machine 还原 CoreSimulator.framework 和 Xcode.app(我上次备份是从 2017 年 9 月开始的,所以现在我正在运行 Xcode9.1,但至少它可以再次运行(!))

    不确定它是否相关,但我正在使用 2011 年中期的旧 IMac。

    【讨论】:

      【解决方案5】:

      从横向切换到纵向时我遇到了麻烦。视图不会移动。

      我发现的唯一解决方法是 Command + Arrow up。这模拟了按音量上键,但在旋转后也会刷新显示

      【讨论】:

        【解决方案6】:

        是的,这不是你说的慢动作。 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>

        【讨论】:

          【解决方案7】:

          确保没有意外启用“慢速动画”(调试 > 慢速动画)。我已经做过很多次了:(

          【讨论】:

          • 他解释说这与此无关。
          • 对,非常对。即使我不知道它是如何打开的,它也解决了我的问题。可能在最近的 xCode 中设置为默认值
          猜你喜欢
          • 2017-05-07
          • 2021-07-11
          • 1970-01-01
          • 2019-05-09
          • 2016-11-19
          • 1970-01-01
          • 2019-11-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多