3

エミュレータを./emulator-traceprofile-avdemulator_15で起動しました。次に、トレースファイルを〜/ .android / avd / rodgers_emulator_15.avd / traces / profileまで追跡しました。ここには、qtrace.bb、qtrace.exc、qtrace.insn、qtrace.method、qtrace.pid、qtraceの6つのファイルがあります。 。静的。これらのファイルをどうするかわかりません。すべてのファイルでdmtracedumpとtraceviewの両方を試しましたが、何も実行できない出力を生成するものはないようです。

Androidでネイティブメソッド呼び出しにかかった時間の割合を確認するにはどうすればよいですか?

4

2 に答える 2

5

tracedmdumpを使用して出力を変換する必要があります。build/envsetup.shこれは、完全なAndroidソースで定義されているシェル関数です。完全なツリーから構築するのではなく、SDKを使用している場合、これが機能するかどうかはわかりません。

(ソースがなく、tracedmdump関数を確認したい場合は、ここで確認できます。)

を使用した場合はemulator -trace profile、を実行しますtracedmdump profile。これにより、さまざまなバイナリを掘り下げてシンボリック情報を取得し、それをトレースデータに関連付けて、HTMLサマリーとtraceview互換のトレースファイルを生成します。

プロファイリングを有効にすると、VMの実行速度が遅くなります(インタープリターはすべてのメソッド呼び出しと戻りにオーバーヘッドがあり、低速の「デバッグ」インタープリターで実行されます)が、ネイティブコードは引き続きフルスピードで実行されるため、結論を出すときは注意してください。

一般的なコメント:トレースを開始/停止するためにF9またはメソッド呼び出しの1つを使用することを忘れないでください--traceフラグは機能を有効にするだけです。

于 2010-03-29T19:47:13.117 に答える
1

これらの6つのファイルを使用するには、dmtracedumpと同じディレクトリにread_pid、read_trace、profile_traceなどの他のスクリプトがあります。Uは最初に6つのファイルを含むトレースディレクトリでpost_traceを実行する必要があります。その後、次のいずれかを使用できます。それらは、各基本ブロックが実行される頻度、それらが属するpidなどのプロファイル情報を取得します。

于 2011-01-18T01:36:26.383 に答える