traceview を使用して、いくつかの非同期イベントのパフォーマンスを測定したいと考えています。非同期イベントは、以下のコードのようなコールバックで渡されます。
interface EventCallback {
void onStartEvent(String name);
void onStopEvent(String name);
}
ここで、すべての非同期イベントは「onStartEvent」呼び出しで開始され、「onStopEvent」呼び出しで終了します。
イベントごとにトレース ファイルを作成したいと考えています。ここ ( http://developer.android.com/tools/debugging/debugging-tracing.html#creatingtracefiles ) を読んだところ、呼び出しの順序は「スタック」で「構造化」する必要があるため、非同期イベントをトレースすることはできません。 「注文みたい。したがって、「Debug.stopMethodTracing()」への呼び出しは常に「Debug.startMethodTracing("calc");」への最新の呼び出しに適用されます。
したがって、次の順序でコールバックを受信するとします。
onStartEvent(A)
onStartEvent(B)
onStopEvent(A)
onStopEvent(B)
これはに解釈されます
Debug.startMethodTracing("A");
Debug.startMethodTracing("B");
Debug.stopMethodTracing(); // "A" ではなく "B" に適用されます
Debug.stopMethodTracing(); // "B" ではなく "A" に適用されます
トレースビューを使用して、とにかく私がやりたいことはありますか? つまり、「構造化されていない」非同期イベントをトレースしますか?