Jetpack Compose コンポジション トレース

本日、Compose Composition Tracing の最初のアルファ版をリリースします。これは、Android Studio Flamingo システム トレース プロファイラーで Jetpack Compose 構成可能関数を表示できる新機能です。これにより、構成の詳細レベルのメソッド トレースを使用して、システム トレースによる侵入性を低く抑えることができます。これは、Compose アプリのパフォーマンスをチェックし、アプリが期待どおりに動作しない理由を解明するのに最適です。

以前は、システム トレースは、再構成のためにフレームごとに 1 つのブロックしか表示しませんでしたが、どのコンポーザブルが実際に再構成されているかはわかりませんでした。この情報は、メソッド トレースによって既に入手可能でしたが、メソッド トレースは非常に煩わしく、アプリのパフォーマンスに大きな影響を与える可能性があります。これで、システム トレース内のすべてのコンポーザブルをこの問題なしで確認でき、予想よりも時間がかかっているものを見つけることができます! これがどのように見えるかのプレビューです:

システム トレースのコンポーザブル

これがどの程度の詳細を提供しているかが明らかでない場合に備えて、コンポジション トレースを有効にしない場合は次のようになります。

構成トレースなしのシステム トレース

構成トレースの設定

プロジェクトで再構成トレースを試すには、少なくとも次のバージョンに更新する必要があります。

  • Android Studio フラミンゴ カナリア 1
  • コンポーズ UI: 1.3.0-beta01
  • Compose コンパイラ: 1.3.0

さらに、Compose ランタイム トレースに新しい依存関係を追加する必要があります。

implementation("androidx.compose.runtime:runtime-tracing:1.0.0-alpha01")

この依存関係により、再構成を含むシステム トレースを取得すると、構成可能な関数が自動的に表示されます。

システム トレースを実行する

システム トレースを実行して新しい再構成トレースの動作を確認するには、まずプロファイラーを開きます。

CPUタイムラインをクリック

トレースする UI にアプリを移動し、[システム トレースと記録]を選択します。

再構成を引き起こし、記録を停止するには、アプリを使用してください。トレースが処理されて表示されると、再構成トレースでコンポーザブルを確認できるようになります。キーボードとマウスを使用して、トレースをズームおよびパンできます。トレースのナビゲートに慣れていない場合は、ドキュメントを参照してください。

コンポーザブルは、ファイルと行番号とともにフレーム チャートにも表示されます。

注意事項

APK サイズのオーバーヘッド

この機能のオーバーヘッドを可能な限り最小限に抑えることを目指しましたが、Compose コンパイラによって APK に埋め込まれた文字列をトレースすることにより、Compose アプリの APK サイズが増加します。これは、アプリが Compose をあまり使用していない場合は比較的小さく、完全な Compose アプリの場合は大きくなる可能性があります。上記のように、これらはさらに難読化されていないため、トレース ツールに表示できます。Compose コンパイラは、バージョン 1.3.0 以降、すべてのアプリにそれらを挿入します。

これらは、次の proguard ルールを追加することで、本番ビルドで削除できます。

これらの機能は将来変更される可能性がありますが、変更については Composeリリース ノートに記載されています。

それらを保持すると、APK サイズのコストがいくらか発生しますが、プロファイリングされる APK がアプリ ユーザーが実行するものと同じであることが保証されることに注意してください。

正確なタイミング

profileable正確なプロファイリングを行うには、他のパフォーマンス テストと同様に、アプリを次のように作成する必要がありますnon-debuggable。https://developer.android.com/studio/profile#profileable-apps

フィードバック

この機能に関するフィードバック、見つけたバグ、リクエストをお待ちしております。問題トラッカーからフィードバックを送信できます。

提案された投稿

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。

無限の命

大人になると、世界はそういうもので、あなたの人生はただ世界の中で生きていくだけで、決して命を危険にさらすことはなく、決められた道をたどって最後には死ぬだけで、失敗しないように努めるのだと言われがちです。壁を打ちすぎてはいけません。しかし、それは非常に限られた人生です。

関連記事

職場革命: 一流の専門家がハイブリッド ワークとリモート ワークについて語る

職場革命: 一流の専門家がハイブリッド ワークとリモート ワークについて語る

今日の急速に進化するビジネス環境において、ハイブリッドおよびリモートワークの概念は前例のない勢いを増しています。企業が従業員のニーズや期待の変化に適応し続ける中、さまざまな分野の専門家が集まり、この変革的な働き方のメリット、課題、将来について議論しています。

ライティングスキルを向上させる実証済みの 3 つの方法

書くことの利点とそれを助けるための戦略

ライティングスキルを向上させる実証済みの 3 つの方法

2022 年には GPT-3 がリリースされるため、ライティング スキルの重要性は低くなるようです。AI を使えば、文章が苦手な人でも質の高い人材を生み出すことができます。

危険な会話

危険な会話

私たちがこの地球上で繁栄し続けたいのであれば、危険な会話をしなければなりません。私たちがこれまでやってきたこと、現在行っていること、そして現在継続して行う予定の(または計画している)ことに挑戦するものです。

パスワードはもう不要 — パスキーがパスワードをどのように置き換えるか

パスワードはもう不要 — パスキーがパスワードをどのように置き換えるか

曖昧さを避けるために、次の用語が使用されます。認証者; ログイン Web サイトの作成に使用されている携帯電話。ユーザーがログイン要求サービスを行うために使用している Web サイトまたはアプリケーション。特定のサービスを提供するベンダー。例: