将棋プログラミング

(将棋に関する)ソフトウェア開発のノウハウ等。

Android Studio のプロファイル

Android アプリのある機能の実行が遅く、

「***」は応答していません

が表示されていた。

入力イベントに対する応答が 5 秒以内にないと、この ANR ダイアログが表示されると説明されている。

developer.android.com

それで、Android Studio のプロファイルを使ってみた。

developer.android.com

developer.android.com

次の手順で、各 Method の実行時間を計測できる。

1. ツールバーの [Profile] をクリック

2. + をクリックし、デバイス等を選択

3. [CPU] タイムラインの任意の場所をクリックして CPU Profiler を開く。

4. 記録構成の Java/Kotlin Method Sample (legacy) を選択(図1)

5, Record をクリックし開始(図1)。Stop をクリックし停止。

最初、CPU Profiler を開く部分がわかり難かった。

図1 記録構成

次の図は、実行結果の例だが、onPostExecute() 内の load() 内で実行している replaceAll() が非常に遅く、78% の時間がかかっていることがわかった。
これを書き換えたところ、load() の実行時間は、6754 ms から 537 ms になり、1/10 以下に高速化できた。
別の部分でも、遅い部分がわかり、書き換えたところ、 6890 ms から 1185 ms に高速化できた。

図2 結果