Xcode 4の問題があります。ユーザーインタラクションに対する応答が非常に遅くなります。コードの編集、領域のスクロールなど。これは特に、多くのコントローラー/ビューファイルなどを含む大規模プロジェクトで発生します。
先週、ハードディスクを完全に消去し、Snow LeopardとXcodeを再インストールしましたが、着実に(数日にわたって)イライラするような応答時間になり、ワークフローが大幅に中断しました。
また、オーガナイザー->プロジェクトを使用して、プロジェクトの「派生データ」を削除することもありましたが、ほとんど効果がありませんでした。
私は、最初のインスタンスでより高いスペックのマシンを取得する以外に、パフォーマンスを改善するためにできることがあるかどうか疑問に思っています。
参考までに、Intel Core 2 Duoプロセッサを搭載したMacBookを2GHzおよび4GBのRAMで実行しています。
アップグレードが必要な場合は、よくスペックされたマシンでXcode 4のパフォーマンスの低下が発生しているかどうかも知りたいと思います(MacBookでパフォーマンスの問題が発生するのはXcodeだけなので、ハードウェアのアップグレードは意味がありません)。
誰かが提案や推奨事項を持っているか、ハードウェアの改善がより大きなプロジェクトツリーでの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:
以下のフランシスコガルシアからのコメントを読んでください!
私の新しいMBP(SSDドライブを含む)では、この方法はもう必要ありません。 Xcodeは地獄のように動作します:)。これが大きな実りの懸念を宣伝する広告とは見なされず、単なる体験レポートに過ぎないことを願っています...
一般設定でライブの問題を無効にすると、明確な違いが生じます。また、頻繁に再実行している状況ではgdbを有効にせずにスキームを設定します(gdbが起動をかなり高速化することはありません)。
ファイルインデクサーの主要な問題(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(小さなプロジェクトの場合は数十GB))をランダムに取得するため、システムの残りの部分はディスクスワッピングの待機中に停止します。
Xcodeはハードディスクへのアクセスを独占するため、その(破損した)内部ファイルインデックスを作成できます。システムメモリが少なくなり、OS Xがスワッピングを行う必要がある場合... Xcodeがファイルのインデックスを作成するのを待ってスタックします...そしてXcodeは待機中により多くのメモリを使用します...そしてBOOM!小規模なシステムでは、OS Xが最終的にハングします
XcodeはOS Xのスワップスペースを必要としません
最後のものは非常に興味深いものです。大量のメモリ(16 GBなど)がある場合は、スワップスペースを完全に無効にしてみてください。 Xcodeの実行速度は速くなります。OSX Lionは、必要のない場合でもスワップするメモリ管理にバグがあるためです。
Xcodeが突然遅くなる場合は、内部でスワップしているので、その時点で強制終了して再起動できます。
(SSDをお持ちの場合、スワップが開始されたかどうかを知る唯一の方法は、「遅くなる」のを待つことです。そうでない場合は、HDスラッシュが聞こえるとすぐにわかります。システムスワップファイルはもうありません。考えられる原因はXcodeのみです)
2GB RAM(これを試したときに1か月に1回だけOS Xがクラッシュし、1年間このように実行された)があったとしても、スワップを安全に無効にすることができます。ハイエンドのビデオ/グラフィックスは、実行するために数ギガバイトを必要とするファイルで動作します。数週間試してみて、何が起こるかを見てください。
しかし...動作が遅くなるたびにXcodeを再起動するのは驚くべきことです。 RAMの少ないマシンでは、Xcodeのプライベートスワップファイルを閉じるとすぐに削除されるようです(RAMの多いマシンでは発生しないようです)
これが誰かに役立つかどうかはわかりませんが、私にとっては、XCodeを32ビットモードで実行するように設定するとパフォーマンスが大幅に向上しました(デフォルトでは64でした)。古いxcode 3とほぼ同じ速度です。アプリを右クリックして(/ Developer/Applications/XCode.app)、Get Infoを選択すると、32ビットに切り替えることができます。 =およびチェック2ビットモードで開く。
私の場合、これらの応答はどれも実際にパフォーマンスを改善しませんでした(やがてXcode 4.1はほとんど使用できなくなり、現在は終了してから助けられました)。
ただし、すべてのドキュメントを閉じ続けると(control-command-W)、高速のままであるように見えることがわかりました。 Xcodeは、クリックしたすべてのドキュメントを何らかの形でメモリ内に自動的に保持し、コントロールコマンドの左/右矢印を使用してドキュメント間を移動できます。誤って多くのウィンドウ(特にIBウィンドウ)を開くと、クロールが停止します。現在開いているすべてのドキュメントを閉じるだけで、完全に再起動する必要なく、これを軽減できるようです。
@lukaszによる次の投稿、特に彼の回答の項目#8(閉じたユーティリティパネルとクイックヘルプペイン)
これらの問題が発生した場合は、Mac OS X LionでXcode 4.1を試してください。同じハードウェア上でmuchがより高速で応答性に優れていることに驚かされます(Macbook Pro 2.66 GHz Core 2 Duo with 4GB of RAM here)。
彼らはこのリリースで多くのパフォーマンスのバグを修正したと思います。
時間プロファイルテンプレートでInstrumentsを起動し、実行中のXcode(またはビルド中に問題がある場合はclang、llvmなど)に添付します。問題をすぐに確認できるはずです。私は、マシンごとに非常に異なる原因を見てきました。バージョン管理はしばしば犯人です。
私は同じ問題に直面しています、ベータビルド以来部分的に修正されましたが、まだ永続的です。 Xcodeには、メモリを浮遊させる1つ(またはそれ以上)のリークが内部で発生したようです。統合されたInterface-Builderを使用すると、この気の利いた「機能」を非常によく見ることができます。 Appleへのバグレポートの祈りと記入の下にある2つの可能な解決策:
申し訳ありませんが、これ以上の解決策はないと思います。..:/
Git機能をオフにすることで、ついにxcodeが正常に動作するようになりました。
XCode 4のコンパイルパフォーマンスを高速化するトリックを見つけました。
Xcodeで実行またはコンパイルまたはその他の処理を実行し、アクティブモニターを失速させ、xcodeプロセスを選択してから、サンプルプロセスをクリックします。これにより、プロセスが正常に停止し、通常どおりに再実行されるため、妥当な時間でアプリをビルドできます。少なくともこれは私のために動作します。
意志
このスレッドや他の[多くの]スレッドで提案されたすべてのことを試しましたが、私のために働いた唯一のことは、プロジェクトのSubversionを「無効にする」ことでした。ここに安っぽい部分があります-ビルトインSVNプラグインを「無効化」できる唯一の方法は、偽のIPアドレスで/ etc/hostsファイルをフリギングすることで、事実上すべてのSVNアクセスが失敗します。
/ Developer/Library/Xcode/PrivatePlugInsにあるIDESubversion.idepluginを削除/名前変更しようとしましたが、Xcode 4.2.1が起動して拒否します。
Xcodeを再起動するたびにSVcodeリポジトリをXcodeから削除しようとしましたが、Xcodeは数分以内にクラッシュします。
「ファイル」->「ソース管理」->「リモートステータスの非表示」で「リモートステータス」をオフにしようとしました(何もしませんでした)。
HostsファイルでSVNホスト名を1.2.3.4に設定したので、Xcodeはうまく機能し、ファイルを切り替えるたびにSBBODを表示しません。
$ grep 1.2.3.4 /etc/hosts
1.2.3.4 svn.myhost.com
それから、本当にバージョン管理をしたいときは、hostsファイルを解凍し、cmd line svnを使用する必要があります。
私の場合は、RAM使用法でした。
少数のChromeタブ、またはめったに使用されないアプリを殺すようにしてください。これは役立つはずです!
ここで多くの良い提案がありました。ここで説明するようにスナップショットを無効にすることで問題を解決しました。
インターフェイスビルダー/エディターで.xibファイルを変更しているときにパフォーマンスが低下する場合は、.xibの[ファイルインスペクター]およびdisable auto-layoutに移動します。 .xibを編集し、最後の手順として、自動レイアウトを再度有効にして、制約を追加または調整します。
Xcodeのインデックス作成を回避できます。これにより、システムのメモリパフォーマンスが向上しますが、オートコンプリートや定義へのジャンプなどの機能がIDE.
$ defaults write com.Apple.dt.XCode IDEIndexDisable 1