繁体   English   中英

Xcode 11 调试器非常慢 - 一个已知问题?

[英]Xcode 11 debugger is extremely slow - A known problem?

由于我更新到最新的 Xcode 版本 11.0 (11A420a) 调试非常缓慢和繁琐。

编辑:更新到 11.1 GM (11A1027) 后,问题仍然存在。

编译一个项目并在模拟器或设备上运行它是没有问题的。 但是,当到达断点 Xcode 或多或少变得不可用时:

  • 到达断点时程序执行立即停止。 然而 Xcode 需要长达 30 秒的时间才能在代码 window 中显示 position 并再过一分钟左右来加载变量视图的内容(显示断点处可用的变量)
  • 如果我使用Step intoStep over功能,则最多需要一分钟来执行下一步,再过一分钟来加载变量。

我在具有 3.2 GHz i7 和 32 GB 内存的 Mac mini 2018 上运行 Xcode。 我之前在同一台机器上使用过 Xcode 10 没有任何问题。


搜索“Xcode slow”当然会带来大量线程和可能的解决方案。 从我作为 iOS 开发人员的这些年开始,我知道 Xcode 从来都不是最快、最稳定的程序。 不过,从来没有像现在这么糟糕。

不幸的是,没有任何已知技巧(重新启动 Xcode 或 Mac、清理项目、清理 Xcode 库文件夹等有任何效果,

所以最大的问题是:

这是 Xcode 11 中的已知问题吗? 有没有已知的解决方案?

好吧,我遇到了同样的问题,最近发现我只是忘记为我的方案禁用诊断

在此处输入图像描述

打开您的运行配置 -> 管理方案 -> 编辑方案 -> 运行 -> 诊断选项卡

在使用整体编译与增量编译行为时,我看到了一些性能改进。 此外,在 Mojave 和 Catalina 上运行都应该显示性能问题。 特别是由于 Canvas 预览版和其他新功能需要比 Xcode 的上一个版本更高的 CPU 强度,因此我预计在使用 ZA3B5EBD8A1E9EBF44A172E80D5A7D3A3 的此版本时,Mojave 性能会更低(OS 未针对此版本进行优化)。 由于 Catalina 处于 Beta 阶段,我预计还会看到其他问题。 除了眼睛测试,我没有采取任何具体措施。 Whole Compilation 的初始运行很慢,但此后似乎变得更好。

快速帮助指出:

概括

此设置控制模块中 Swift 文件的重建方式。 *增量:仅重建模块中过期的 Swift 源文件,根据需要运行多个编译器进程。 *整个模块:始终在单个编译器进程中重建模块中的所有 Swift 源文件。 宣言

SWIFT_COMPILATION_MODE 值类型

枚举(字符串)

在我的情况下(XCode 11.x,MacOS 10.15.2),我发现只有在我单步执行另一个单步操作时才会触发极端的调试器缓慢,即我按下步进按钮太快。 我目前的解决方法是避免这样做。

纯粹的猜测,但也许它是由 XCode/LLDB 试图同时服务多个断点触发的? 尝试删除除一个以外的所有断点,看看是否有帮助。

如果它是相关的:我主要使用 XCode 中的 C++ ,这里和那里都有一点 Obj-C。 我目前根本不使用 Swift。

请尝试取消选中: Parallelize Build on each target in Edit Scheme 如果您的项目有很多目标,它将节省构建时间。

编辑方案:

在此处输入图像描述

对我来说,删除~/.lldb解决了这个问题。

您是否尝试过在安全模式下运行 Xcode ? 这并不理想,但这是我让它高效运行的唯一方法。 直到最近的 Catalina 更新,在安全模式下不再检测到我的设备。 所以我现在又回到了原点。

我在两种不同的情况下发现了同样的问题:

1)应用程序不是由Xcode启动的,即在方案运行设置的信息面板中设置了“等待可执行文件启动”标志;

2)在方案设置中选择了“由于后台提取事件而启动”选项(但这不是默认设置)

Xcode 选项位置

Xcode 11.2.1 (11B500)

我一直在处理这个问题,终于弄明白了。 这是我的 ~/.lldbinit 文件中的这些行:

break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc

我将这些行注释掉了,现在它几乎和没有调试器一样快!

我设置了 238 个未使用的断点。 当我删除它们时,它又很快了(即使打开了诊断。)

同样的问题,在我的情况下rm -rf ~/Library/Developer/Xcode/DerivedData很有用

如何使 Xcode 正常运行并不是真正的解决方案,但它对我来说是一个问题的解决方案:我暂时切换到 AppCode。

至少可以再次使用断点进行调试。

你可以在这里试试: https://www.jetbrains.com/objc/

30 天免费试用,也许到那时 Xcode 会得到修复:)

暂无
暂无

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

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