11

我的 Xcode 从昨天开始在处理中等大小的项目(大约 200 个源文件)时表现得非常严重。项目正确编译并在模拟器和设备中运行。我不使用任何 3rd 方库,除了少数广泛使用的包含(如 JSON 或 facebook ios sdk)。

即使处于空闲状态(无索引、无编译、无编辑),它也会持续全速使用 CPU。RAM的使用量比较正常(300-50MB)。

我的机器使用:Core 2 Duo 3.04Ghz CPU、8GB RAM 和 Vertex OCZ 3 SSD 驱动器。

我已经尝试了在 stackoverflow 找到的每个建议的解决方案:

  1. 清洁项目
  2. 在管理器中清理派生数据
  3. 在管理器中清理存储库
  4. 按照此处的建议从工作区和 userdata 文件中清理 xcodeproject 包:https ://stackoverflow.com/a/8165886/229229 (它只是暂时提供帮助,大约一分钟后重新开始)。
  5. 多次重启Xcode(效果和4一样)。
  6. 禁用“实时问题”
  7. 甚至重新安装Xcode

没有什么帮助。在大多数情况下,Xcode 会暂时索引项目,然后恢复正常性能,但过一会儿又变得无法使用。两个核心的 CPU 都跳回 95-100%,智能挂起等……

我附上了仪器如何看到 Xcode 进程的屏幕截图:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

更新: 经过片刻的希望,我通过四处走动解决了这个问题

#import "header.h"

从头文件到实现文件的语句并用前向声明交换它们......一段时间后问题又回来了。我正在添加控制台日志。奇怪的是,与 Xcode 相关的日志是在我退出后出现的,而不是在运行 itef 期间。

控制台日志:

5/11/12 9:27:03.777 AM [0x0-0x45045].com.apple.dt.Xcode: com.apple.dt.instruments.backgroundinstruments: Already loaded
5/11/12 9:27:05.571 AM Xcode: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/SIMBL.osax"
5/11/12 9:27:58.168 AM Xcode: ERROR: Failed to create an alert for ID "enabled" based on defaults: 1
4

6 回答 6

5

阻止我噩梦的是:

  1. 在项目构建设置(粗体)中将始终搜索用户路径更改为 NO。
  2. 删除 -objC 标志 其他链接器标志(也是粗体设置)。

然后删除 Derived Data 并等待 Xcode 重新索引。

我不确定它们中的哪一个有帮助,因为我同时更改了它们,而且我的进度太落后了,我没有时间测试它。当我在业余时间重现错误和解决方案时,我会改进这个答案。

但是,有一个提示: *重新考虑并重新检查您的项目/目标构建设置。*

这种奇怪的行为很可能是由一些不幸的构建设置组合引起的。

于 2012-05-11T08:15:02.153 回答
3

我所有的项目都不时这样做。我可以关闭 X-code 并重新启动它,它会运行一段时间,然后回到使用 200% 的 CPU 时间(两个核心完全加载)。

我的解决方案是使用 AppCode 作为我的主要 IDE(具有更好的 IDE 的额外好处,但这是另一回事)。我只在需要编辑情节提要时启动 XCode,并在完成后将其关闭——通常这样可以避免问题。

AppCode 运行相同的项目文件/结构具有更好更快的索引,并且永远不会遇到这个问题,所以我看不出这怎么可能是一个设置/配置问题 - 它一定是 XCode 中的一个错误。因此,我不会浪费时间更改您的代码结构,因为它很可能只会延迟问题,而不是修复它。

于 2012-12-02T13:09:45.433 回答
2

无法知道 OP 是否真的有不同的根本原因,但对我来说,这似乎是 git 的 Xcode 故障。 添加/提交我当前的更改解决了我的问题。这是完整的场景以及我为修复它所做的工作:

  • 环境:
    • Xcode 版本 5.1.1 (5B1008)
    • Macbook Pro OS X 10.9.2
    • 2 GHz 英特尔酷睿 i7,8GB 内存
  • 我注意到 Xcode 开始不断地占用我200 % 的 CPU。
  • 不确定它是什么时候开始的,但是 Xcode 确实在尝试制作快照时冻结了(400% CPU 使用了几分钟,直到我强制退出 Xcode)
  • 重新打开后,我注意到 Xcode 仍然无限期地停留在200 % 的 CPU 使用率。
  • 关闭所有项目不起作用。
  • 删除所有派生数据并重新启动不起作用。
  • 卸载 Xcode 并重新安装起初是有希望的,但是一旦我重新打开我的主项目,CPU 就会恢复到恒定的200 % CPU 使用率。(索引完成后)
  • 关闭陷入困境的项目并没有帮助。Xcode 现在再次陷入了永远杀死 200% 的 CPU 领域。

在查看 Stack Overflow 之后,很多人都提到 git 是个问题。

  • 我有一个稍微复杂的 git repo(在主 Xcode 项目中有一个子模块 repo 和一个子项目)。
  • 我在 repo 的主 repo 和 submodule 部分都有待处理的更改。
  • 我关闭了 Xcode 并 git 添加并提交了我当前的所有更改。
  • 重新打开 Xcode 和VIOLA!没有更多的 CPU 被杀死。回到0.0 % 的空闲使用率。

Xcode 5.1.x 对我来说似乎也以其他方式与 git 作斗争(有时不接受 GUI 中的更改等),所以可能存在 Xcode git 集成错误。

于 2014-05-15T13:18:19.933 回答
1

看起来它正在花时间解析 PCH 中包含的 ObjC。

  • clang 必须生成多少个 PCH?在您的项目中,对于您项目中使用的每种方言/语言和任何相关目标,这将是一个用于 C,一个用于 ObjC,一个用于 C++,一个用于 ObjC++。也就是说 - 如果您的应用程序的 PCH 中包含一个依赖库并且您正在破解该库,那么每次您更改 pch 包含的标头时,应用程序目标中的所有代码意义都必须失效并再次解析。如果你的目标编译一个 C 文件,它需要一个用于 C 的 PCH。如果它需要一个用于 ObjC,它需要为 ObjC 生成一个。
  • 您多久更改一次 PCH(或其中包含的任何内容)?
  • 从 PCH 中删除包含。看到 PCH 中包含的每个链接框架并不罕见(避免这样做!)。
  • 如果您更改构建或预处理器设置,则可能需要每次都完全重建目标的代码感知索引。
  • 您是否尝试过禁用实时问题?
于 2012-05-10T08:04:18.380 回答
0

在我的项目(所有项目)中,它是自动完成/智能感知。当我更改 .h 文件中的一行代码时,它变得乱七八糟,CPU 使用率增加了 100%(超过一个内核)。我刚刚禁用了它,现在我必须为自己考虑更多(就像我以前在 Windows 上做的那样),它在 CPU 使用率低的情况下效果很好。

于 2012-10-17T08:38:09.110 回答
-1

以前也遇到过这个问题,是git引起的.

于 2013-07-22T08:58:16.567 回答