私のAndroidアプリのどこにボトルネックがあるかを見つける必要があります。
どのプロファイリングツールまたはテクニックを使用できますか?
私のAndroidアプリのどこにボトルネックがあるかを見つける必要があります。
どのプロファイリングツールまたはテクニックを使用できますか?
回答:
DDMSはAndroidに最適です。デフォルトでは、ADTプラグインに含まれています。
詳細な例を含むこのドキュメントは、DDMSの取り扱いに役立つはずです。
メモリ分析については、Eclipse MATを試してください
何をテストするかによって異なります。
Android向けのアプリケーションを開発する場合は、TimingLoggerクラスを試す必要があります。見てみましょう。この記事 TimingLoggerヘルパークラスの使用方法を説明します。
非常に優れたツールはJMeterで、Android用のプラグインもあります。
外部ツールを使用したくないが、非常に標準的な方法で経過時間を測定する場合は、System.nanoTime()を使用する必要があります。currentTimeMillisは使用しないでください。これは、実時間のansを測定するためです。コンピューターのクロックが完全ではないため(すべてを時々修正する必要があるため)、実行され、システムクロックに小さな修正が継続的に発行されるプロセスがあります。うるう秒補正は言うまでもありません。
currentTimeMillisがよく使用されますが、経過時間とタイミングを測定することは依然として正しくありません。とにかく、呼び出しには時間がかかるため、非常に短い間隔を正確に計時することは期待できません。しかし、それはAndroidで動作する問題ではありません。
例を示します:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
この無料のライブラリhttp://jetm.void.fm/もご覧ください。
JMeterのチュートリアルも見つけることができます。
http://developer.android.com/training/articles/perf-tips.htmlで推奨されている別のツールは、Caliperです:https : //code.google.com/p/caliper/。(私はそれを使ったことがないので、私はそれについてあまり知りません。)