2

メソッドを開始および終了するたびにログメッセージを出力するようにコードを変更する途中でした。おそらくEclipse用の機能やプラグインがあり、それを追跡して表示できると思ったとき。結局のところ、これはJavaコンパイラが手元に持っている情報です。

私が必要としているのは、各メソッドが呼び出されて返される順序を確認することです。

メソッド名とその上のすべてのスタックが出力されるので、誰が呼び出したかを知ることができます。

オプションで、入力と戻りの時刻と差を出力する場合は、プロファイリングに適した情報になります。

過去にTraceViewを試したことを覚えていますが、それがanswrかどうかはわかりませんが、情報が多すぎて何が起こっているのかを明確に把握できなかったことをはっきりと覚えています。
誰かがそれを適切に使用して私が必要とする情報だけを取得する方法を知っているなら、それも素晴らしいでしょう。

更新:
TraceViewと彼のコンパニオンdmtracedumpを使用するのに苦労しています。想定外のことをしたので、dmtracedumpコードソースを検索して調べました。
これは私が受け取っているエラーメッセージを生成するコードです。

TraceData data1;
DataKeys* dataKeys = parseDataKeys(&data1, gOptions.traceFileName,
                                   &sumThreadTime);
if (dataKeys == NULL) {
    fprintf(stderr, "Cannot read trace.\n");
    exit(1);
}

しかし、トレースファイルを修正する方法がわかりません。
それはによって生成されます Debug.startMethodTracing("tracefile");

Javaコンパイラに各メソッド呼び出しを出力するように指示する方法があればいいのにと思います。この時点で私はかなりイライラしています。

4

2 に答える 2

2

独自のプロファイリングサービスを実装するのではなく、Googleが提供する非常に優れたツールTraceViewを使用することをお勧めします。

TraceViewの使用で問題が発生した場合は、次を使用してコードの特定の部分のみをプロファイリングできます。

// start tracing to "/sdcard/calc.trace"
Debug.startMethodTracing("calc");
// ...
// stop tracing
Debug.stopMethodTracing();

私はそれを自分で使用しました、そしてそれはあなたがプロファイリングのために知る必要があるであろうすべてについてあなたに話します。

于 2012-06-04T16:20:53.650 に答える
0

ソースの任意の場所にログメッセージを挿入および削除するために、自分でファイルを変更する方法を見つけました。

私はこの投稿にそれを書きました

于 2012-06-09T11:30:20.060 に答える