2

iPad 用に作業している描画アプリケーションがあります。私は自分の描画を高速化しようとしているので、タイムプロファイラー機器でいくつかのテストを実行していました. しかし、私のやり方が間違っているか、タイムプロファイラーがこの状況で役に立たないかのどちらかです。

私が探しているのは、基本的に、描画を行っているコードの行ごとの実行時間です。代わりに得たものは以下です。基本的に、時間プロファイラーは「あなたは描画に多くの時間を費やしています」と言います。私の反応は「うーん!?」です。プロファイラーを正しく使用していますか、または行ごとの実行時間を表示する方法はありますか (現在の出力よりもはるかに便利です)。

時間プロファイリング ツールのスクリーンショット

編集:上で、私が探しているものをもっと見ることができます。行ごとの実行時間。これは私のコードではなく、時間プロファイラーがどのように動作するか/期待する方法の例にすぎません。

Edit2: シミュレーターで実行している場合、メソッドごとの実行時間のみを確認できますか? シミュレーターでプロファイリングを試みたところ、出力はまさに私が期待したものです。ただし、デバイスを使用したより正確なプロファイリングを本当に望んでいました:(

4

3 に答える 3

2

タイム プロファイリング ツールは、デバイス上でシミュレーターと同じように動作しないようです。シミュレーター バージョンでは、行ごとの実行時間を確認できます。デバイスでプロファイリングを行う場合と同様に、上記の出力しか得られず、あまり役に立ちません。

于 2012-08-29T15:30:31.407 に答える
1

多くのサンプルを収集し、それらを統合して、最も時間を費やしている場所を示すため、タイムプロファイラーではこれを達成できないと思います。

「未加工」のdtraceスクリプトを使用して、このタスクを解決できる場合があります。または、それに基づいてサンプリング コードを作成することもできますmach_absolute_time(この QAは、後で値をより意味のあるデータに変換するのに役立つ場合があります)。

于 2012-08-20T15:51:53.260 に答える
0

必要な行ごとの実行時間を取得するには、コール ツリーに記述した関数をダブルクリックする必要があります。スクリーンショットでは、Apple が作成した UIView メソッドをダブルクリックしています。それはAppleのコードであり、あなたのものではないため、逆アセンブルされています。

コール ツリーのコードに集中したい場合は、スクリーンショットで選択した [Obj-C のみを表示] チェックボックスのすぐ上にある [システム ライブラリを非表示] チェックボックスを選択します。システム ライブラリを非表示にすると、コール ツリーでコードを見つけやすくなり、行ごとの実行時間にたどり着くのに役立ちます。

于 2012-08-20T18:26:09.787 に答える