Xcode 4-性能较慢

问题描述

| 我对Xcode 4确实有一个问题,对用户交互的响应速度非常慢,例如编辑代码,滚动区域等。这种情况尤其发生在具有许多控制器/视图文件等的大型项目中。 我完全擦干了硬盘,并在前一周重新安装了SNow Leopard和Xcode,但稳定地将其重新设置为令人沮丧的响应时间(几天之内),从而极大地破坏了工作流程。 我有时还通过Organizer-> Projects删除了该项目的“派生数据”,但效果不大。 我想知道是否有什么办法可以提高性能,而不是在一开始获得更高规格的机器。 仅供参考,我正在运行配备2 GHz和4GB RAM的Intel Core 2 Duo处理器的MacBook。 如果我们需要升级,我还想知道人们是否在配置良好的机器上从Xcode 4体验到了这种较差的性能(这会使我们的硬件升级变得毫无意义,因为它是唯一在性能方面存在问题的Xcode。 MacBook)。 如果有人有任何建议或建议,或者甚至可以让我们知道改进的硬件如何影响Xcode在较大项目树上的性能,那么这将是非常有帮助的,对于其他处于相似位置的开发人员也是宝贵的资源。     

解决方法

        如果清除工作空间文件,则有助于加快速度。 首先,请确保未打开Xcode。现在找到您的项目文件。右键单击它,然后选择
Show Package Contents
。 接下来,删除
project.xcworkspace
。 打开Xcode,享受更快的性能! 谢谢: http://meachware.blogspot.com/2011/06/speed-up-xcode-4.html 编辑:我已经对此发表了一些评论,指出对于某些项目,这可能会导致问题。在执行这些步骤之前,请确保您已经备份了项目,并且不要忘了之后要检查和测试项目。确保您仍然拥有所有可执行文件和方案。     ,        重要更新:Xcode 6的路径已更改(感谢注释dcc)!我只是添加了另一种方法。 还有一个不错的技巧可以通过使用以下代码行创建ram磁盘来加快构建速度:
diskutil erasevolume HFS+ \"ramdisk\" `hdiutil attach -nomount ram://8475854`
这将创建一个大小约为4 GB的内存中磁盘映像。但是要小心,您需要有足够的内存。当然,您可以创建一个较小的映像,例如2 GB(即4237927)。 然后,您告诉Xcode将派生数据存储在那里 您不能告诉Xcode直接在其中存储iPhone Simulator数据,但是您可以通过执行以下操作在ramdisk上创建一个文件夹并创建一个符号链接,而不是iPhone Simulator目录: Xcode 6:
cd /Volumes/ramdisk
mkdir CoreSimulator
rm -R ~/Library/Developer/CoreSimulator
ln -s /Volumes/ramdisk/CoreSimulator ~/Library/Developer/CoreSimulator
较旧的Xcode版本:
cd /Volumes/ramdisk
mkdir iPhone\\ Simulator
rm -R ~/Library/Application\\ Support/iPhone\\ Simulator
ln -s /Volumes/ramdisk/iPhone\\ Simulator ~/Library/Application\\ Support/iPhone\\ Simulator
如果我使用此设置为模拟器构建,它将立即启动并运行:) 请注意,重新启动计算机时,ram磁盘将消失,因此创建脚本或在启动时运行的内容是一个好主意。并且不要放置任何您想要保留的数据!!! 更新2013-03-12: 阅读下面来自Francisco Garcia的评论! 使用新的MBP(包含SSD驱动器),我不再需要此方法。 Xcode像地狱般运行:)。我希望这不会被视为宣传重大水果问题的广告,它只是一份经验报告...     ,        在“常规首选项”中禁用“实时发布”具有明显的不同。对于频繁重新运行的情况,我还设置了未启用gdb的方案(没有gdb可以大大加快启动速度)。     ,        对我来说,将Xcode设置为以32位模式运行(默认为64位)后,Xcode的性能得到了极大的提高。它几乎与旧的Xcode 3一样快。您可以通过右键单击应用程序(在/Developer/Applications/XCode.app中)并选择“获取信息”并选中“以32位模式打开”来切换到32位。     ,Xcode 4.2、4.3: 文件索引器的主要问题(运行Spotlight的同一代码,已经存在很多年了?可能是)。 禁用与“监视”文件有关的所有不必要的东西: 快速帮助(注意:永远不要单击“ QH”选项卡!即使隐藏助手仍会导致代码运行!在移至新文件之前切换到其他选项卡...) SCM管理(SVN,Git等-Xcode的git支持仍然有点漏洞(可能损坏项目),并且它们已经放弃了SVN支持,因此无论如何您都不应该使用它!) 尝试删除您的工作区文件夹(按照公认的答案),但前提是该文件在磁盘上很大 ...您可以找到的与单个文件状态相关的任何其他信息 Xcode 4.4、4.5: 这些版本具有严重的内存泄漏,损坏的文件索引器(但优于4.2和4.3)以及私有交换文件问题。 最终,通过禁用/启用交换空间(如何在mac os x中禁用或启用交换),并在多台计算机上使用普通的硬盘驱动器,并通过在2 GB RAM至16 GB RAM的计算机上运行实验,我发现Xcode似乎在运行自己的交换空间,与OS X交换(!)无关。 (这可能是一个错误-也许还有我不知道的OS X交换的另一种形式-但是系统交换文件并没有变得更大或更小,而在某些计算机上磁盘空间却以千兆字节为单位跃升或下降了。 ) 观测到的: Xcode 4.4 / 4.5将随机占用系统中的所有RAM(对于一个很小的项目,其GB为10 \'),以便系统的其余部分停止运行,卡住以等待磁盘交换 担心:在配备SSD的Macbook上,您不会知道这种情况已发生 最坏:...即使可能损坏您的硬盘(SSD也不喜欢颠覆写入) Xcode会占用对硬盘的访问权限,因此它可以进行(中断的)内部文件索引。当系统内存变低,并且OS X需要进行交换时……它会卡住,等待Xcode索引文件……而Xcode在等待时会占用更多内存……并且:BOOM!在较小的系统上,OS X最终挂起 Xcode不需要OS X交换空间 最后一个很有趣。如果您有很多内存(例如16 GB),请尝试永久禁用交换空间。 Xcode的运行速度更快,因为OS X Lion在内存管理中存在一些错误,即使不需要,它也可以在其中进行交换。 如果xcode突然变慢,则它在内部进行交换,此时您可以杀死并重新启动它。 (如果您有SSD,则唯一可以知道其是否开始交换的方法就是等待它“变慢”。否则,您会在听到HD震荡声后立即知道:没有系统交换文件再也没有了,所以唯一可能的原因是Xcode) 即使您有2GB的内存,您也可以安全地禁用交换功能(尝试此操作时,我每月只有一次OS X崩溃,以这种方式运行了一年),但这将使您无法对文件进行高端视频/图形处理需要几千兆字节才能运行。随意尝试几个星期,看看会发生什么。 但是...只要减慢速度就重新启动Xcode都能产生奇迹。在具有较少RAM的计算机上,关闭时Xcode的私有swapfile似乎立即被删除(在具有大量RAM的计算机上似乎没有发生)     ,        在我的情况下,这些响应都没有真正提高性能(随着时间的推移,Xcode 4.1变得几乎不可用,只是立即退出并有所帮助)。 但是,我刚刚发现,如果我继续关闭所有文档(control-command-W),它似乎会保持快速运行。 Xcode会自动将您单击的所有文档以某种方式保留在内存中,并且您可以使用控制命令的向左/向右箭头在它们之间导航。如果您不小心打开了太多(特别是IB窗口),它就会停止运行。只是立即关闭所有打开的文档,然后似乎可以缓解这种情况,而无需完全重新启动。     ,        @lukasz的以下帖子有所帮助,尤其是他的答案中的第8个项目(“实用工具面板”和“快速帮助”窗格) Xcode 4变得非常慢,并杀死了我的硬盘     ,        遇到这些问题的每个人都应在Mac OS X Lion上尝试Xcode 4.1。我感到惊讶的是,它在相同的硬件上(这里有4GB RAM的Macbook Pro 2.66 GHz Core 2 Duo)具有如此之快和灵敏的响应。 我想他们在此版本中修复了许多性能错误。     ,使用时间配置文件模板启动Instruments,并将其附加到正在运行的Xcode(如果您的问题是在构建期间,则将其附加到clang,llvm等)。您应该能够很快看到问题。我在不同的机器上看到了非常不同的原因。版本控制通常是罪魁祸首。     ,        我面临着同样的问题。由于测试版仍保持不变,因此部分修复了这些问题。似乎Xcode内部存在一个或多个泄漏,这些泄漏正在浮动您的内存。使用集成的Interface-Builder时,您可以很好地观看这个漂亮的“功能”。在为苹果祈祷和填写错误报告下,有两种可能的解决方案: 不要使用内部Builder,而是启动外部应用程序。 不时退出Xcode,这应该释放泄漏的内存。     ,        我已经尝试了该线程和(许多)其他线程中建议的所有内容,唯一对我有用的是为项目“禁用”颠覆。这是最糟糕的部分-我可以“禁用”内置SVN插件的唯一方法是使用虚假IP地址来提取我的/ etc / hosts文件,从而实际上导致所有SVN访问失败。 我尝试在/ Developer / Library / Xcode / PrivatePlugIns中删除/重新命名IDESubversion.ideplugin,但是Xcode 4.2.1呕吐并拒绝启动。 每次重新启动Xcode时,我都尝试从Xcode中删除SVN存储库,但是Xcode在几分钟之内崩溃。 我尝试通过File-> Source Control-> Hide Remote Status关闭\“ Remote Status \”(对我没有任何帮助)。 现在,我已经在我的hosts文件中将SVN主机名设置为1.2.3.4,Xcode可以很好地工作,并且几乎在每次切换文件时都不会显示SBBOD。
$ grep 1.2.3.4 /etc/hosts
1.2.3.4 svn.myhost.com
然后,当我真的要进行版本控制时,我必须解压缩主机文件并使用cmd行svn。     ,        您可以避免索引Xcode。这样做可以提高系统的内存性能,但也会阻止IDE功能(例如自动补全)和跳转到定义的工作。
$ defaults write com.apple.dt.XCode IDEIndexDisable 1
    ,        如果使用界面生成器/编辑器修改.xib文件时性能低下,请转到.xib的“文件检查器”下并禁用自动布局。对.xib进行编辑,然后作为最后一步,重新启用自动布局并添加或调整约束。     ,        我终于通过关闭git功能使Xcode正常工作。     ,        我通过禁用快照解决了我的问题,如下所述: 在Xcode 5中编辑情节提要非常慢     ,        就我而言,这是内存使用情况。 尝试杀死一些Chrome标签或很少使用的应用。     ,        我发现了一种提高XCode 4编译性能的技巧: 当您在Xcode中运行,编译或进行任何其他处理时,如果它停止打开的活动监视器,请选择Xcode进程,然后单击示例进程。 它将使进程解开并正常运行,从而允许在合理的时间内构建应用程序。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...