【发布时间】:2012-05-18 08:56:21
【问题描述】:
我的 Xcode 从昨天开始在处理中等大小的项目(大约 200 个源文件)时表现得非常严重。项目正确编译并在模拟器和设备中运行。我不使用任何 3rd 方库,除了少数广泛使用的包含(如 JSON 或 facebook ios sdk)。
它持续全速使用 CPU,即使它处于空闲状态(没有索引、没有编译、没有编辑)。 RAM的使用量比较正常(300-50MB)。
我的机器使用:Core 2 Duo 3.04Ghz CPU、8GB RAM 和 Vertex OCZ 3 SSD 驱动器。
我已经尝试了在 stackoverflow 找到的所有建议解决方案:
- 清理项目
- 在管理器中清理派生数据
- Organizer 中已清理的存储库
- 按照此处的建议从工作区和 userdata 文件中清理了 xcodeproject 包:https://stackoverflow.com/a/8165886/229229(它只是暂时有帮助,大约一分钟后会重新开始)。
- 多次重启Xcode(效果同4)。
- 禁用“实时问题”
- 甚至重新安装了 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
【问题讨论】:
-
其他项目呢?它的行为方式是否相同?
-
我的猜测是您有一个文件或一组文件,这使得语法高亮、代码完成等所需的解析进入无限循环(这将是一个错误) .也许
lsof可以告诉你它正在处理哪个文件。使用lsof -p <pid>检查正在运行的进程。 -
@Ondra Peterka:不,它只在这个中表现这种方式。
-
@mvds:你可能是对的,因为......在将头文件中的几个#imports 移动到实现文件之后,然后与前向声明(\@class 和 \@protocol 。 ..),问题就神奇地消失了!看起来即使编译器成功完成,解析器也有一些导入循环。
-
如果您可以复制该行为,请在radar.apple.com提交错误报告
标签: xcode performance cpu xcode4.3