「 Time Profiler」と「CPU Monitor 」を使用して iPhone 4 でアプリのプロファイルを作成し、その意味を理解しようとしました。
実行時間が 8 分だとすると、CPU の「実行時間」は約 2 分です。その約 67% はメイン スレッド上にあり、そのうち 52% は「独自のコード」からのものです。
今では、配列 (および関連する作業) の列挙、UIKit 操作などに多くの時間が費やされていることがわかります。
問題は、このデータから意味のある結論を引き出すにはどうすればよいかということです。つまり、修正が必要な問題が発生しています。
アプリの性質を考えると、その実行時間 (中央値は 70%) で多くの CPU 負荷がかかっていることがわかります。
そうは言っても、際立っているものがあります。メイン スレッドで HTTP 応答を解析し、熱心にオブジェクトを作成します (メモリ プロファイリングによってもバックアップされます)。
ただし、ここで私が探しているのは、問題のあるコードと、CPU の実行時間のみに基づく有用な結論です。つまり、ここで「多くの」時間を費やしています。
アップデート
より良いイメージを与えるために、詳しく説明してみましょう。
このアプリの機能要件に基づいて、iPhone 3G で実行できない理由がわかりません。CPU 使用率の中央値が約 70% で、ピークが 97% であることは、iPhone 4 では危険信号のようにしか見えません。
これに対する最も明白な対応は、コードを調査し、そこから結論を導き出すことです。
私が望んでいるのは、次の形式の断定的な答えです
- 時間の 25% ~ 50% を CA に費やしている場合、アニメーションに問題があります。
- UIKitに関連するものに1000ミリ秒を費やす場合は、処理を確認してください
繰り返しになりますが、実行時間と CPU 使用率に関しては、問題が発生していることを示すだけの答えはないかもしれません。