如何在Xcode 4中禁用索引?

90

不久前我更新了Xcode到4版本。这个新版本在索引项目上花费了很长时间(项目非常大)。因此,我想禁用索引。浏览Xcode帮助和互联网都没有找到结果。

7个回答

108

打开终端窗口并粘贴此命令:

defaults write com.apple.dt.XCode IDEIndexDisable 1

你会失去一些功能(自动完成、跳转到定义,一些助手将无法正常工作)。但你会获得更多的内存和CPU。

对于我的项目,Xcode 的内存使用从 2 GB 减少到了几百 MB。(这是我非常需要的,以便进行编译。)


这个方法对我也起作用了。在一个中等规模的项目中,有一天XCode 4决定吃掉10GB的虚拟内存,而我只有4GB的物理内存,然后就一直卡着转了5分钟。每次我尝试重新启动XCode时,它都会出现同样的问题。删除工作区文件后,仍然是同样的问题。使用这个命令禁用索引解决了这个问题。 - clemahieu
11
哇,失去了通过单击类或方法名称显示快速帮助的能力对于提高生产力来说是一种绊脚石。Xcode 4太糟糕了 :( ... 不过回答还不错。 - Nate
4
哈哈哈哈,对我来说这个程序已经停止运行了。当我添加了C++的Eigen库时,索引器完全卡住了,所有的跳转到定义等功能都停止工作了,即使在它停止索引的短暂时刻内也是如此。真的,他们有测试过这个软件吗... - Potatoswatter
禁用我的Mac Pro上的索引后,很难描述改进。我现在可以自由浏览我的项目。在禁用之前,仅输入一个字符就需要几秒钟的时间。 - ArtHare
哇,太棒了!无论如何,当您使用vim作为编辑器时,这是完美的。 - elimirks
显示剩余2条评论

8

降低XCode进程的优先级有助于提高性能:

renice 10 -p PID

您可以从活动监视器或 top/ps 命令中获取 PID。

3
如果问题是内存使用,这将没有帮助。Xcode 仍然会消耗相同数量的内存;它只是会更长时间地使用它。 - Peter Hosey
1
是的,但它确实为其他任务释放了CPU周期。我暂时切换回XCode 3,但我将不得不尝试禁用索引的XCode 4。 - Peter Tseng

7
这个问题已经在这个新闻组上引起了注意:
核心问题似乎是XCode4在索引期间使用了大量的内存,大约5GB左右,因此如果你使用的是只有2GB左右内存的笔记本电脑,则会出现严重的分页问题。我猜苹果公司的内部工程师们都在使用配置最高的Mac Pro。

可悲的是,这似乎非常真实!你会认为他们可以以某种方式减少内存容量需求。发生的情况是计算机耗尽主存并开始交换。即使使用SSD也不愉快。 - lericson

1
我的新视网膜Macbook Pro运行XCode 4时索引(以及其他所有操作)非常缓慢。而在家里,我的Mac mini在同一项目上的工作速度非常快!原来是我的反病毒软件 - 对MacBook上读取或写入的每个文件进行扫描。关闭它可以大大提高速度。

1

我遇到了相同或类似的问题。我的项目包含大量使用模板的C++代码。将这些头文件包含在预编译头文件中解决了我的问题。


1
此外,删除位于~/Library/Xcode/DerivedData/中的应用程序特定目录将允许Xcode重新索引。这将有助于解决问题,因为索引似乎会默默失败并且无法恢复。 - Damian Carrillo

0

慢速索引并非必然。而且更多的内存也不一定更好。

我有一个中等规模的工作项目,大约有500个源文件。在删除派生数据后,重新索引这个项目需要18分钟才能完成。这是在一台相当新的Macbook Pro上进行的,配备了8G内存和i7处理器,没有其他应用程序打开,也没有在电脑上做其他事情。很糟糕,对吧?

我的家用机是一台最近的Mac Mini,配备了4G内存和i5处理器。在那台机器上,完全索引同样的项目只需要40秒。

我还不知道区别在哪里,但我正在努力解决。


你最终弄清楚为什么在你的Macbook Pro上需要这么长时间了吗?我似乎也遇到了同样的问题。 - chown
抱歉回复晚了,我刚刚才注意到。是的,我卸载了Norton病毒检测软件之后,速度明显变快了许多。我们公司现在转用Clam。 - dar512

-7

在Xcode 4中无法禁用索引。IDE的许多功能都建立在其维护的索引之上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接