Tolok ukur hero

Tolok ukur hero adalah sekumpulan tolok ukur yang mencakup perjalanan pengguna aplikasi tingkat tinggi, seperti startup aplikasi atau scrolling di aplikasi Pokedex open source.

  • Tolok ukur hero startup: Melacak waktu dari saat aplikasi dibuka hingga konten ditampilkan.
  • Tolok ukur hero scroll: Mengukur performa scrolling petak malas dengan gambar.

Penyiapan pengujian

  • Pemilihan aplikasi: Kami melakukan pengujian ini menggunakan aplikasi Pokedex open source, dengan membandingkan versi berbasis Tampilan dan berbasis Compose. Aplikasi ini dipilih untuk mewakili skenario dunia nyata, dan tidak dikembangkan oleh tim Compose.
  • Penyiapan hardware: Kami menjalankan tolok ukur di Pixel 3a yang menjalankan Android 12 (API 31) dengan CPU dan GPU yang dikunci. Perangkat ini digunakan sebagai dasar performa standar untuk tolok ukur hero.
  • Penyiapan build: Tolok ukur menggunakan aplikasi yang di-build dalam mode rilis dengan R8 diaktifkan. Aplikasi ini sepenuhnya dikompilasi terlebih dahulu untuk mengurangi ketidakstabilan dari kompilasi tepat waktu (JIT).
  • Pemilihan hasil: Untuk memastikan analisis kasus terburuk, nilai ekstrem dan noise yang tidak representatif dikecualikan dari hasil tolok ukur. Kemudian, dasar pengukuran ditetapkan dengan memilih nilai median data performa batas atas

Tolok ukur hero startup

Untuk mengukur startup, kami menggunakan PokedexStartupBenchmark. PokedexStartupBenchmark mengukur waktu yang diperlukan agar aplikasi Pokedex terlihat oleh pengguna.

Peluncuran aplikasi dapat dilakukan dalam salah satu dari tiga status berikut: cold start, warm start, atau hot start. Setiap status memengaruhi waktu yang diperlukan aplikasi untuk terlihat oleh pengguna. Dalam cold start, aplikasi akan dimulai dari awal. Dalam tolok ukur ini, kami mengukur performa peluncuran aplikasi dalam status cold start. Sebaiknya selalu lakukan pengoptimalan aplikasi berdasarkan asumsi cold start. Tindakan tersebut juga dapat meningkatkan performa warm start dan hot start.

Metrik yang kami gunakan untuk mengukur waktu startup aplikasi adalah waktu hingga tampilan awal dan waktu hingga tampilan penuh.

Waktu hingga tampilan awal

Waktu hingga tampilan awal (TTID) mengukur waktu yang diperlukan aplikasi untuk membuat frame pertamanya, termasuk inisialisasi proses selama cold start, pembuatan aktivitas selama cold start atau warm start, dan menampilkan frame pertama.

Di PokedexStartupBenchmark, Compose 1.11 2,5% lebih lambat daripada Tampilan untuk TTID dengan cold start.

Compose 1.11 2,5% lebih lambat daripada View untuk TTID
Gambar 1: Compose 1.11 dibandingkan dengan Tampilan untuk TTID.

Waktu hingga tampilan penuh

Waktu hingga tampilan penuh (TTFD) mengukur waktu hingga aplikasi menjadi interaktif. Artinya, semua data telah dimuat dan digambar. Untuk mengetahui informasi selengkapnya tentang waktu hingga tampilan penuh, lihat Waktu Startup Aplikasi.

Di PokedexStartupBenchmark, Compose 1.11 13,0% lebih lambat daripada Tampilan untuk TTFD dengan cold start.

Compose 1.11 13,0% lebih lambat daripada View untuk TTFD
Gambar 2: Compose 1.11 dibandingkan dengan Tampilan untuk TTFD.

Tolok ukur hero scroll

Untuk mengukur performa scrolling, kami menggunakan PokedexScrollBenchmark. Metrik ini mengukur performa scroll layar aplikasi Pokedex untuk petak malas dengan gambar. Dalam tolok ukur ini, seluruh layar di-scroll dan dilempar beberapa kali serta item baru dimuat. Performa scroll diukur berdasarkan rasio jank.

Rasio jank

Perangkat Android dirender hingga 60 atau 120 frame per detik (fps). Artinya, sistem memiliki batas waktu yang ketat (misalnya, 16,6 md untuk 60 fps) untuk menghasilkan frame. Jika aplikasi memerlukan waktu terlalu lama untuk melakukan pekerjaannya, hal ini dapat menyebabkan stutter yang terlihat dan kami sebut jank.

Di PokedexScrollBenchmark, Compose dan Tampilan mencapai performa jank 0,21% yang sama sejak Compose 1.9.0. Dalam istilah absolut, 1 dari 485 frame mengalami jank.

Tolok ukur ini menunjukkan bahwa Compose 1.9 dan yang lebih baru cocok dengan performa Tampilan untuk jank saat scrolling.

Sejak Compose 1.9.0, Compose dan View memiliki rasio jank yang sama
Sejak Compose 1.9.0, Compose dan Tampilan memiliki rasio jank yang sama.

Menjalankan tolok ukur hero

Untuk memvalidasi hasil performa dan menjalankan tolok ukur secara lokal:

  1. Ikuti panduan AndroidX untuk melihat kode sumber.
  2. Ikuti petunjuk dalam kode sumber Hero Benchmarks.

Anda dapat menjalankan tolok ukur ini di perangkat yang didukung, seperti perangkat tertentu yang Anda gunakan untuk mengoptimalkan aplikasi. Namun, untuk memvalidasi hasil resmi, gunakan penyiapan hardware yang sama.