最近几天,我的Xcode在处理中等规模的项目(约200个源文件)时开始表现得非常沉重。工程可以正确编译并在模拟器和设备上运行。 我没有使用任何第三方库,除了一些广泛使用的包含文件(如JSON或Facebook iOS SDK)。
Xcode不停地使用CPU,即使它处于空闲状态(无索引、无编译、无编辑)。 RAM的使用相对正常(300-50MB)。
我的机器配置如下:Core 2 Duo 3.04Ghz CPU,8GB RAM和Vertex OCZ 3 SSD驱动器。
我已经尝试了stackoverflow上提供的每一个解决方案:
- 清理项目
- 在Organizer中清理Derived Data
- 在Organizer中清理存储库
- 根据这里的建议,从工作区和用户数据文件中清理xcodeproject捆绑包:https://dev59.com/p2035IYBdhLWcg3wbPU5#8165886 (这只有一小段时间有帮助,在一两分钟后就会重新开始)。
- 多次重新启动Xcode(与步骤4的效果相同)
- 禁用"实时问题"
- 甚至重新安装了Xcode
没有任何帮助。在大多数情况下,Xcode会对项目进行索引一会儿,然后回到正常的性能水平,但是过一段时间后又变得不可用了。 CPU跳回到两个核心的95-100%,智能卡顿等...
这里附上Xcode进程在Instruments中的截图:
更新:
当我把几个#import "header.h"
语句从头文件移到实现文件并与前向声明交换后,有一段时间我以为自己解决了问题...但是过一会儿问题又出现了。
这里添加了控制台日志。
奇怪的是,与Xcode相关的日志只在我退出它后才出现,而不是在运行时出现。
控制台日志:
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>
来检查运行中的进程。 - mvds