0

私のアプリでは、いくつかのカスタム コンポーネントを UIImageView に追加すると、ひどいパフォーマンスが見られます。前述のカスタム コンポーネントである可能性が高く、それらを改善する必要がありますが、今後の改善を測定できるようにしたいと考えています。また、特定のビューのアニメーション中に UIImageView が描画される回数も知りたいです。

私が試した戦略の 1 つは、UIImageView をサブクラス化し (ベンチマークの目的でのみ)、サブクラスの「描画」メソッドをオーバーライドして何かをログに記録し、スーパー クラスのメソッドを呼び出すことです。

UIImageView のサブクラスに対して drawRect が呼び出されないことを除けば、これで問題ありません。この方法でオーバーライドできる UIImageView の「描画」メソッドはありますか?

理論的には、UIImageView のサブクラスを UIView のサブクラスに置き換えることで同様のことを実現できますが、これは少し侵略的になり、最後の手段としてのみ行いたいと思います。

最後に、私はうさぎの道を進んでいますか? 本当に明白な解決策 (またはツール) が私を見つめていますか? Instruments がこの領域のフレーム レートに関するプロファイリングを提供できることは知っていますが、ツールに関する知識が限られているため、問題の解決策がわかりません。

4

1 に答える 1

2

楽器を使用します。

これらのために作られています。ご自身でもおっしゃっていました。

Instruments User Guide」は、これまでに使用したことがない場合に開始するのに適した場所です。

楽器の使い方を学ぶことは、時間を有効に使うことです。アプリのパフォーマンスを調整したり、メモリリークを探したりするときなどに、いつでも使用できます。


メソッドの実行時間を本当に知りたい場合は、DTrace を見ることができます。それは非常に強力ですが、楽器よりもはるかに難しいです。これを使用して、Instruments でカスタム ツールを構築することもできます。

于 2012-06-19T21:35:22.367 に答える