Kzr*_*ill 128 performance xcode xcode4
我有一个问题,Xcode 4对用户交互的响应非常缓慢,例如编辑代码,滚动区域等.特别是对于具有许多控制器/视图文件等的大型项目.
我完全擦拭了硬盘,并在另一周内重新安装了Snow Leopard和Xcode,但是它再次(令人沮丧的)响应时间(过了几天)大大扰乱了工作流程.
我有时也通过Organizer - > Projects删除了项目的"派生数据",但收效甚微.
我想知道除了在第一个实例中获得更高规格的机器之外,我还能做些什么来提高性能.
仅供参考我正在使用2GHz的Intel Core 2 Duo处理器和4GB的RAM运行MacBook.
如果我们需要升级,我还想知道人们是否正在使用Xcode 4在性能良好的机器上遇到这种糟糕的性能(这会使我们的硬件升级变得毫无意义,因为只有Xcode在MacBook上有任何性能问题).
如果有人有任何建议或建议,或者甚至可以告诉我们硬件如何改进Xcode在大型项目树上的表现,那么这将非常有用,也是其他处于类似位置的开发人员的宝贵资源.
sud*_*-rf 161
如果清除工作区文件,则有助于加快速度.
首先,确保Xcode未打开.现在找到你的项目文件.右键单击它,然后选择Show Package Contents
.
接下来,删除project.xcworkspace
.
打开Xcode,享受更快的性能!
感谢:http: //meachware.blogspot.com/2011/06/speed-up-xcode-4.html
编辑:我对此有几点评论,指出对于某些项目,这可能会导致问题.在执行这些步骤之前,请确保备份项目,并且不要忘记事后检查并测试项目.确保您仍然拥有所有可执行文件和方案.
ben*_*wig 46
重要更新:Xcode 6的路径已更改(感谢评论dcc)!我刚刚添加了另一种方式.
通过使用以下代码行创建ram磁盘,还有另一个很好的技巧来强化构建:
diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://8475854`
Run Code Online (Sandbox Code Playgroud)
这将创建一个大小约为4 GB的内存磁盘映像.但要小心,你需要有足够的记忆.当然,您可以创建一个较小的图像,如2 GB(即4237927).
然后你告诉Xcode在那里存储派生数据
你不能告诉Xcode直接在那里存储iPhone模拟器数据,但你可以在ramdisk上创建一个文件夹,并通过这样做创建一个符号链接而不是iPhone模拟器目录:
Xcode 6:
cd /Volumes/ramdisk
mkdir CoreSimulator
rm -R ~/Library/Developer/CoreSimulator
ln -s /Volumes/ramdisk/CoreSimulator ~/Library/Developer/CoreSimulator
Run Code Online (Sandbox Code Playgroud)
较旧的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
Run Code Online (Sandbox Code Playgroud)
如果我使用此设置为模拟器构建,它立即启动并运行:)
请注意,重新启动计算机时ram磁盘将消失,因此最好创建一个在启动时运行的脚本或其他内容.并且不要放置您想要保留的任何数据!
更新2013-03-12:
阅读以下Francisco Garcia的评论!
使用我的新MBP(包含SSD驱动器),我不再需要这种方法了.Xcode像地狱一样运行:).我希望这不会被视为关注大型水果的广告,它只是一份经验报道......
我不知道这是否对任何人都有帮助,但对我来说,XCode在将其设置为以32位模式运行后获得了巨大的性能提升(默认为64).它几乎与旧的xcode 3一样快.您可以通过右键单击应用程序(在/Developer/Applications/XCode.app中)并选择获取信息并选中 以32位模式打开来切换到32位.
文件索引器的主要问题(运行Spotlight的代码相同,多年来一直有错误?可能).
禁用与"观看"文件有关的所有非必要内容:
这些版本有一个主要的内存泄漏,一个损坏的文件索引器(但优于4.2和4.3),也许是一个私有交换文件问题.
最终,通过禁用/启用交换空间(如何在mac os x中禁用或启用交换),以及在多台计算机上使用普通硬盘驱动器,以及在具有2 GB RAM至16 GB RAM的计算机上运行实验,我发现Xcode似乎运行自己的交换空间,独立于OS X交换(!).
(这可能是一个错误 - 也许有一种额外形式的OS X交换我不知道 - 但系统交换文件没有变大或变小,而磁盘空间在一些机器上上下跳动了几千兆字节)
观测到的:
Xcode 4.4/4.5将随机占用系统中的所有RAM(10个GB用于一个小项目),以便系统的其余部分停止运行,等待磁盘交换
Xcode将占用对硬盘的访问权限,因此它可以执行其(损坏的)内部文件索引.当系统内存变低时,OS X需要进行交换......它等待Xcode索引文件......而Xcode在等待时需要更多内存......并且:BOOM!在较小的系统上,OS X最终会挂起
Xcode不需要OS X交换空间
最后一个非常有趣.如果您有大量内存(例如16 GB),请尝试永久禁用交换空间.Xcode运行速度更快,因为OS X Lion在内存管理中存在一些错误,即使在不需要的情况下也会交换.
如果xcode突然减速,它会在内部进行交换,此时你可以杀死并重新启动它.
(如果你有一个SSD,唯一可以知道它是否开始交换的方法就是等待它"变慢".否则,你知道只要你听到HD捶打:你就不再有系统交换文件了,所以唯一可能的原因是Xcode)
你可以安全地禁用交换,即使你有2GB的RAM(当我尝试这个时,每个月只有一次OS X崩溃,以这种方式运行一年),但它会阻止你使用文件进行高端视频/图形处理只需要运行几千兆字节.随意尝试几周,看看会发生什么.
但是......每当它减速时重新启动Xcode都会产生奇迹.在RAM较少的机器上,当你关闭时,Xcode的私有交换文件似乎立即被删除(在具有大量RAM的机器上似乎不会发生)
归档时间: |
|
查看次数: |
51580 次 |
最近记录: |