繁体   English   中英

Xcode 10 上的模拟器变得非常慢

[英]Simulator on Xcode 10 became terribly slow

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

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

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

对我有用的是在模拟器菜单的调试>图形质量覆盖中切换值。 令人惊讶的是,从“设备默认”设置为“低”后,延迟消失了,现在任何值都像魅力一样。

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

defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint X  

其中 X 是:

0 = 自动

1 = 金属

2 = OpenCL

3 = OpenGL

升级到 XCode10 后,我遇到了与此处描述的完全相同的问题。 每次打开模拟器,不管是 IphoneX 还是 Iphone SE,我的 mac 都爬到了几乎停顿的地方,模拟器的性能是几帧。

以下方法无效:

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

什么最终奏效:

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

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

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

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

更新到Xcode 11.如果您的计算机不符合Xcode 11的要求,请使用另一台计算机。

原因是在Xcode 11中,GPU首次在模拟器中工作。 Xcode 10尝试在CPU上模拟基于GPU的动画,在某些机器上,结果是火车残骸。

是的,这不是你说的慢动作。 Xcode 模拟器在全球范围内的性能极低。 这是苹果的bug。 我已经通过反馈助手报告了它。 我用代码创建了演示,演示模拟器比任何旧的真实设备慢 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 eg 30 ms) in any browser any device any platform including very old iOS device eg 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>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM