3

Instruments のタイム プロファイラーを使用すると、意味のない結果になることがよくあります。これらは、検査対象の関数の外側にあるファイルの一部、または実行可能コード (コメント、空白行など) を含まないファイルの一部で時間が費やされていることを示しています。これにより、結果が役に立たなくなることがよくあります。

これを解決するために、私は多くのことを試しました:

  • 再コンパイルおよび再プロファイリングの前にインストゥルメントを閉じる
  • クリーンビルド、再コンパイル
  • プロファイリングするたびに機器を再起動する
  • Xcode 4.3.2 に更新

これらは場合によっては役立ちますが、常に問題を防止できるわけではありません。

これを修正するにはどうすればよいですか?

問題の例

4

1 に答える 1

2

-O3 最適化フラグを設定して gcc を使用してコンパイルしたコードで、同じ問題が発生していました。グーグルで調べてみると、Apple の時間プロファイラーは、最適化フラグを使用してコンパイルされた gcc コードを好まないことがわかりました。

-O3 フラグを指定せずにコードを再コンパイルし、タイム プロファイラーを再実行すると、ホットスポットがソース コードの正しい行と一致するようになりました。おそらくこれはあなたの問題に関連しています。

于 2012-10-25T15:44:03.993 に答える