しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Android StudioのCPU Profilerで重い箇所を特定する

下URLを参考にCPU Profilerを試してみました。

developer.android.com

まずは新規プロジェクトを作成します。

f:id:llcc:20211205183039p:plain

Profiler画面は[View] > [Tool Windows] > [Profiler]と選択することで表示できます。

f:id:llcc:20211205184206p:plain

画面は最初は下のようになっています。

f:id:llcc:20211205184312p:plain

アプリを立ち上げると自動で測定開始してくれます。

f:id:llcc:20211205184349p:plain

測定しない場合、左上の+ボタンからセッションを選択します。

f:id:llcc:20211205184553p:plain

CPUを押すとCPU利用状況についてより詳しく見れるようになります。

f:id:llcc:20211205184701p:plain

より詳しく見たい場合、真ん中上部のRecordボタンで測定します。
測定停止したい所でStopボタンを押します。

f:id:llcc:20211205185556p:plain

Stopボタンを押すと下のように詳しく見れる画面に移動します。

f:id:llcc:20211205185933p:plain

テスト用に下のような重い処理を追加します。

view.findViewById<Button>(R.id.button_first).setOnClickListener {
    (0..100000).forEach { i ->
        (0..10000).forEach { j ->
            val r = i.toFloat() * j.toFloat()
        }
    }
    findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
}

上を追加して測定した結果は下の通りです。

f:id:llcc:20211205190626p:plain

右側の画面でTop Downタブを開くと具体的にどの処理が重いかまでを追いかける事ができます。

f:id:llcc:20211205191104p:plain