しめ鯖日記

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

Android Studioのプロファイラでボトルネックを探してみる

Android Studioのプロファイラを使ってAndroidアプリのどこが重いかの測定をしてみました。

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

プロファイラはメニューのViewから起動します。

起動すると下のようなViewが表示されます。

アプリを起動すると自動的に接続されます。

記録はViewの左側のRecordボタンから開始します。

Stopを押せば記録は完了して下のような表示になります。

重い処理を作るため、FirstFragmentのsetOnClickListenerを直してみます。

class FirstFragment : Fragment() {
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        binding.buttonFirst.setOnClickListener {
            (0..1_000_000_000).forEach {
                val t = 100 * 100
            }
            findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
        }
    }
}

測定完了後、Flame Chartを開くと下のような表示になります。
マウスを当てるとクリックしたタイミングで4秒ほどかかっている事が分かりました。

Bottom Up画面でも重い処理を見つける事ができました。

ただ、不慣れなせいか重い箇所をピンポイントで特定するのは時間がかかりそうでした。
とりあえずしばらくは色々と試してみようと思います。