11

私のXcodeは、中規模のプロジェクト(約200のソースファイル)で作業しているときに、昨日から非常に重く動作し始めました。プロジェクトは正しくコンパイルされ、シミュレーターとデバイスの両方で実行されます。広く使用されているインクルード(JSONやfacebook ios sdkなど)を除いて、サードパーティのライブラリは使用していません。

アイドル状態(インデックス作成、コンパイル、編集なし)であっても、常にフルスピードでCPUを使用します。RAMの使用量は比較的正常です(300〜50MB)。

私のマシンは、Core 2 Duo 3.04Ghz CPU、8GBのRAM、Vertex OCZ3SSDドライブを使用しています。

私はstackoverflowで見つかったすべての提案された解決策を試しました:

  1. きれいにされたプロジェクト
  2. オーガナイザーでクリーンアップされた派生データ
  3. オーガナイザーのクリーンなリポジトリ
  4. ここで提案されているように、ワークスペースとユーザーデータファイルからxcodeprojectバンドルをクリーンアップしました:https ://stackoverflow.com/a/8165886/229229 (これは少しの間役に立ち、数分後に再開します)。
  5. Xcodeを何度も再起動しました(4と同じ効果があります)。
  6. 「ライブの問題」を無効にする
  7. 再インストールされた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
4

6 に答える 6

5

私の悪夢を止めたのは:

  1. プロジェクトビルド設定(太字)で[常に検索ユーザーパス]を[いいえ]に変更します。
  2. -objCフラグその他のリンカーフラグ(太字の設定)を削除します。

次に、派生データを削除し、Xcodeがインデックスを再作成するまで待ちます。

両方を同時に変更したため、どちらが役に立ったかわかりません。スケジュールが遅れているため、テストする時間がありません。暇なときにバグと解決策を再現するときに、この答えを改善します。

ただし、ヒントがあります。 *プロジェクト/ターゲットのビルド設定を再考して再確認します。*

この奇妙な動作は、ビルド設定の不幸な組み合わせが原因である可能性が高いです。

于 2012-05-11T08:15:02.153 に答える
3

私のすべてのプロジェクトは時々これを行います。Xコードをシャットダウンして再起動すると、しばらくは正常に実行され、その後、200%のCPU時間(2つのコアが完全にロードされている)の使用に戻ります。

私の解決策は、AppCodeをプライマリIDEとして使用することです(はるかに優れたIDEであるという追加の利点がありますが、それは別の話です)。ストーリーボードを編集する必要がある場合にのみXCodeを起動し、完了したらシャットダウンします。通常、これにより問題が回避されます。

AppCodeは同じプロジェクトファイル/構造で実行され、インデックス作成がより高速になり、この問題が発生することはありません。そのため、これが設定/構成の問題になる可能性があるかどうかわかりません。XCodeのバグである必要があります。したがって、コード構造を変更するのに時間を無駄にすることはありません。問題を修正するのではなく、問題を遅らせるだけである可能性が高いからです。

于 2012-12-02T13:09:45.433 に答える
2

OPが実際に別の根本原因を持っているかどうかを知る方法はありませんが、私にとってはgitのXcodeグリッチであるように見えます。 現在の変更を追加/コミットすると、問題が解決しました。これが完全なシナリオとそれを修正するために私がしたことです:

  • 環境:
    • Xcodeバージョン5.1.1(5B1008)
    • Macbook Pro OS X 10.9.2
    • 2 GHz Intel Core i7、8 GB RAM
  • XcodeがCPUの200%を絶えず消費し始めていることに気づきました。
  • いつ開始したかは正確にはわかりませんが、スナップショットを作成しようとするとXcodeがフリーズしました(Xcodeを強制終了するまで数分間400%のCPU使用率)
  • 再度開いた後、Xcodeが200%のCPU使用率で無期限にスタックしていることに気付きました。
  • すべてのプロジェクトを閉じることはできませんでした。
  • すべての派生データを削除して再起動しても機能しませんでした。
  • Xcodeをアンインストールし、最初は約束を再インストールしましたが、メインプロジェクトを再度開くと、CPUは一定の200%のCPU使用率に戻りました。(索引付けが終了した後)
  • 問題のあるプロジェクトを閉じることは役に立ちませんでした。Xcodeは、CPUの200%を永久に殺す土地で再び立ち往生しました。

Stack Overflowを見回した後、複数の人がgitが問題であるとほのめかしました。

  • 少し複雑なgitリポジトリがあります(メインXcodeプロジェクト内にサブモジュールリポジトリとサブプロジェクトがあります)。
  • リポジトリのメインリポジトリとサブモジュール部分の両方で保留中の変更がありました。
  • Xcodeを閉じ、gitを追加して、現在のすべての変更をコミットしました。
  • XcodeとVIOLAを再度開きます!これ以上CPUが強制終了されることはありません。アイドル使用率を0.0 %に戻します。

Xcode 5.1.xは、私にとっても他の方法でgitと格闘しているようです(GUIの変更などを取得しない場合もあります)ので、Xcodegit統合のバグがある可能性があります。

于 2014-05-15T13:18:19.933 に答える
1

PCHに含まれているObjCの解析に時間を費やしているようです。

  • clangはいくつのPCHを生成する必要がありますか?プロジェクトでは、プロジェクトおよび依存するターゲットで使用される各方言/言語に対して、C用に1つ、ObjC用に1つ、C ++用に1つ、ObjC++用に1つになります。つまり、アプリのPCHに依存ライブラリが含まれていて、そのライブラリをハッキングしている場合、pchに含まれるヘッダーを変更するたびに、アプリターゲットのすべてのコードセンスを無効にして再度解析する必要があります。また、ターゲットがCファイルをコンパイルする場合は、C用のPCHが必要です。ObjC用のPCHが必要な場合は、ObjC用のPCHを生成する必要があります。
  • PCH(またはそれに含まれるもの)をどのくらいの頻度で変更しますか?
  • PCHからインクルードを削除します。リンクされたすべてのフレームワークがPCHに含まれているのを見るのは珍しいことではありません(これは避けてください!)。
  • ビルドまたはプリプロセッサの設定を変更すると、毎回ターゲットのコードセンスインデックスを完全に再構築する必要がある場合があります。
  • ライブの問題を無効にしてみましたか?
于 2012-05-10T08:04:18.380 に答える
0

私のプロジェクト(すべて)では、オートコンプリート/インテリセンスでした。.hファイルの1行のコードを変更すると、CPU使用率が+ 100%(複数のコア)になりました。無効にしたばかりですが、(Windowsで行っていたように)自分でもう少し考える必要があり、CPU使用率が低い場合にうまく機能します。

于 2012-10-17T08:38:09.110 に答える
-1

私はこの問題に遭遇していました。これはgitが原因です。gitはよくわかりませんが、プロジェクトディレクトリから.gitという名前のファイルを削除し、通常の状態に戻しました。ちなみに、.gitは非表示になっています。 。

于 2013-07-22T08:58:16.567 に答える