昨日、私は Traceview の学習者になるために 12 時間を費やしました。私はそれが存在することさえ知りませんでした(恥ずかしそうに頭を垂れます)。
生成されるデータの絶対的なショックを克服した今、Traceview はいくつかの単純な概念に要約できることがわかりました。
- 「EXCL CPU TIME」で並べ替えて、個々のメソッドが個別に使用している使用量を正確に判断します。
- 呼び出しの頻度と、呼び出しごとの CPU 時間/リアルタイムを調べます。明らかに、より高いコールを検討する必要があります。私の経験のほとんどでは、上記の 1 で並べ替えると、呼び出されすぎて時間がかかりすぎるメソッドもリストの一番上に表示されます (CPU を最も多く使用しているため、理にかなっています)。
とにかく、上記の 2 つの手順を実行すると、常に CPU の 90% を使用し、アプリのリアルタイム遅延のほとんどを占めているメソッドが 3 ~ 4 個見つかります。唯一の問題は、これらのメソッドはどれも私が書いたメソッドではなく、次のようなシステム メソッドであることです。
- BitmapFactory メソッド
- WebKit メソッド
- その他のシステムメソッド
そうは言っても、トップのリソース ホグがシステム メソッドである場合、それは私のレイアウトの設計と関係があるに違いないと仮定するのは正しいでしょうか? 1 つのアクティビティで BitmapFactory 自体がリソースの 95% を使用していますが、私のレイアウトはそれほど複雑ではありません。
TL;DR - Traceview を実行し、リソースのトップ ホグがすべてシステム メソッドであることがわかった場合、これはレイアウトの問題でしょうか? または、システム メソッドが非常に高く、カスタム メソッドに直接関係していない理由を他にどのように判断できますか。
どうもありがとう、ライアン