Xcode 4.3.2和100%CPU在空闲时间内不断

时间:2012-05-09 19:36:54

标签: xcode performance cpu xcode4.3

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

它始终以全速运行CPU,即使它处于空闲状态(没有索引,没有编译,没有编辑)。 RAM的使用相对正常(300-50MB)。

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

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

  1. 清理项目
  2. 清理组织者中的派生数据
  3. 在Organizer中清理存储库
  4. 从工作区和用户数据文件中清除xcodeproject包,如下所示:https://stackoverflow.com/a/8165886/229229(它只是帮助了一会儿,并在一分钟左右后重新开始)。
  5. 多次重启Xcode(效果与4相同)。
  6. 已禁用“直播问题”
  7. 甚至重新安装Xcode
  8. 没有任何帮助。在大多数情况下,Xcode会对项目进行一段时间的索引,然后恢复正常性能,但过了一段时间后再次无法使用。两个内核,智能挂起等CPU的CPU回升到95-100%......

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

    enter image description here enter image description here enter image description here enter image description here enter image description here

    更新 经过一段时间的希望,我通过移动几个来解决问题

    #import "header.h"

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

    控制台日志:

    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
    

6 个答案:

答案 0 :(得分:5)

什么阻止了我的噩梦:

  1. 在项目构建设置中将“始终搜索用户路径”更改为“否”(粗体)。
  2. 删除-objC标志其他链接标志(也是粗体设置)。
  3. 然后删除派生数据并等到Xcode重新索引。

    我不确定他们中哪一个帮助因为我同时改变了他们两个而且我落后于我的日程安排我没有时间去测试它。当我在业余时间重现错误和解决方案时,我会改进这个答案。

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

    很可能这种奇怪的行为可能是由于某些不幸的构建设置组合造成的。

答案 1 :(得分:3)

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

我的解决方案是使用AppCode作为我的主要IDE(具有更好的IDE的额外好处,但这是另一个故事)。当我需要编辑故事板并在我完成时将其关闭时,我才启动XCode - 通常可以解决问题。

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

答案 2 :(得分:2)

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

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

在浏览Stack Overflow后,多人提到git是一个问题。

  • 我有一个稍微复杂的git repo(在主Xcode项目中有一个子模块repo和一个子项目)。
  • 我在回购的主要回购和子模块部分都有待更改。
  • 我关闭了Xcode,git添加了&承诺了我目前的所有变化。
  • 重新打开Xcode和 VIOLA!不再有CPU被杀死。返回 0.0 %空闲使用率。

Xcode 5.1.x对我来说似乎也在以其他方式使用git(有时候不会在GUI中进行更改等),所以可能存在Xcode git集成错误。

答案 3 :(得分:1)

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

  • 必须克隆多少个PCH?在你的项目中,这将是一个用于C,一个用于ObjC,一个用于C ++,一个用于ObjC ++,用于项目中使用的每个方言/ lang以及任何依赖目标。也就是说 - 如果您的应用程序PCH中包含依赖库并且您正在攻击该库,则每次更改pch包含的标头时,应用程序目标中的所有代码检测都必须无效并再次解析。如果你的目标编译一个C文件,它将需要一个PCH用于C.如果它需要一个用于ObjC,它将需要为ObjC生成一个。
  • 您多久更改一次PCH(或其中包含的任何内容)?
  • 从PCH中删除包含。将每个链接的框架都包含在PCH中是不常见的(避免这样做!)。
  • 如果您更改构建或预处理器设置,则可能需要每次都重建目标完全的代码检测索引。
  • 您是否尝试过禁用实时问题?

答案 4 :(得分:0)

在我的项目(所有这些)上,它是自动完成/智能感知。当我在.h文件中更改了一行代码时,它变得乱七八糟,CPU使用率达到100%(超过一个核心)。 我只是禁用它,现在我必须为自己多想一点(就像我以前在Windows上做的那样)并且它在低CPU使用率下工作得很好。

答案 5 :(得分:-1)

我曾经遇到过这个问题。它是由git引起的。虽然我不太了解git.i删除了项目目录中名为.git的文件,然后它转为normal.by the way,the。 git是隐藏的。