7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Android】Perffetoを用いて爆速でパフォーマンス計測を行う方法

Last updated at Posted at 2022-03-03

はじめに

Perfettoを用いてシステムトレースするには、(方法によっては)計測用のコマンドを作成して、実行結果を持ってきてGUI上で確認するなど、少し手間がかかる場合があります。

なので本記事では、Perfettoを用いて(自分が試した中で)最も短時間で計測できる方法を紹介します。(Android StudioのProfiler使えばもっと速いととかはなし 笑)

Perfettoとは?

Perfettoは、Androidデバイス内のシステムトレースをするツールのことです。
システムトレースとは、例えばCPUやメモリの使用率、各プロセスの情報などを記録することを言います。

以前に、このPerfettoを用いてZOZOTOWNアプリのボトルネックを特定・改善した話を書きました。

上記の記事では、Perfettoでどのようにボトルネックを特定し、どのように改善したかを書いているので、実用的な使い方を知りたい方は参考になるかと思います。

Perfettoでの計測方法

公式では下記の4つの計測方法が紹介されています。

  1. ヘルパースクリプトを使用する方法
  2. Androidデバイス内の/system/bin/perfettoを使用する方法
  3. Perfetto UIを使用する方法
  4. Androidデバイス内のSystem Tracing Appを使用する方法

どれが一番速いか?

1の「ヘルパースクリプトを使用する方法」がもっとも速く計測ができると思います。 (公式でも推奨されています。)

2,4はトレース結果のファイルをデバイスからPCに、移動させ、Perfetto UIなどでOPENする手間がかかります。
(ちなみに、2についてはAndroid Pより古いAndroid端末にはコマンドが存在しません)

3は、トレース結果のファイルをGUI上でOPENする必要はありません。しかし毎回画面をぽちぽちしてトレース用の設定をしなければならないことに加えて、ときどきトレースが始まらないなどの問題があります。

1はトレース用の設定を与えたスクリプトを実行後、自動でブラウザが開きトレース結果を確認することができます。

手順

レイアウト生成処理のパフォーマンス計測を行う方法は下記の通りです。(Macを想定しています)

# OS9 or OS10の非Pixel端末の場合
$ adb shell setprop persist.traced.enable 1

# ヘルパースクリプトのダウンロード
$ curl -O https://raw.githubusercontent.com/google/perfetto/master/tools/record_android_trace
$ chmod u+x record_android_trace

# トレース実行
$ ./record_android_trace -o result view

結果

自動でPerfetto UIが開き、トレース結果が表示されます!スクリーンショット 2022-03-03 20.22.58.png

おわりに

Perfettoを用いて、最も短時間でパフォーマンス計測できる方法を紹介しました。

最近では、Android StudioのProfilerに機能が充実してきたので、その機能使うともっと速いかもしれないです!

参考資料

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?