1. Sebelum memulai
Dalam codelab ini, Anda akan mempelajari cara meningkatkan performa runtime aplikasi Compose. Anda akan mengikuti pendekatan ilmiah untuk mengukur, men-debug, dan mengoptimalkan performa. Anda akan menyelidiki beberapa masalah performa dengan pelacakan sistem dan mengubah kode runtime dengan performa kurang baik di aplikasi contoh berisi beberapa layar yang mewakili tugas berbeda.
Lihat video tutorial coding berikut untuk mendapatkan dukungan lebih lanjut saat mempelajari codelab ini:
Masing-masing layar dibangun berbeda dan mencakup hal berikut:
- Layar pertama adalah daftar dua kolom dengan item gambar dan beberapa tag di atas item. Di sini, Anda akan mengoptimalkan composable berat.

- Layar kedua dan ketiga berisi status yang sering direkomposisi. Di sini, Anda akan menghapus rekomposisi yang tidak perlu untuk mengoptimalkan performa.

- Layar terakhir berisi item yang tidak stabil. Di sini, Anda akan menstabilkan item dengan berbagai teknik.

Prasyarat
- Pengetahuan mengenai cara membuat aplikasi Compose.
- Pemahaman dasar tentang cara menguji atau menjalankan macrobenchmark.
Yang Anda pelajari
- Cara menunjukkan masalah performa dengan pelacakan sistem dan pelacakan komposisi.
- Cara menulis aplikasi Compose berperforma tinggi yang dirender dengan lancar.
Yang Anda perlukan
- Versi stabil Android Studio terbaru
- Perangkat Android fisik dengan Android 6 (level API 23) atau yang lebih baru
2. Memulai persiapan
Untuk memulai, ikuti langkah-langkah ini:
- Buat clone repositori GitHub:
$ git clone https://github.com/android/codelab-android-compose.git
Atau, Anda dapat mendownload repositori sebagai file ZIP:
- Buka project
PerformanceCodelabyang berisi cabang berikut:
main: Berisi kode awal untuk project ini, yang dapat Anda ubah untuk menyelesaikan codelab.end: Berisi kode solusi untuk codelab ini.
Sebaiknya Anda memulai dengan cabang main dan mengikuti codelab langkah demi langkah sesuai kemampuan Anda.
- Jika Anda ingin melihat kode solusi, jalankan perintah ini:
$ git clone -b end https://github.com/android/codelab-android-compose.git
Selain itu, Anda dapat mendownload kode solusi:
Opsional: Rekaman aktivitas sistem yang digunakan dalam codelab ini
Anda akan menjalankan beberapa benchmark yang merekam aktivitas sistem selama codelab.
Jika Anda tidak dapat menjalankan benchmark ini, berikut daftar rekaman aktivitas sistem yang dapat Anda download:
3. Pendekatan untuk memperbaiki masalah performa
Menemukan UI yang lambat dan berperforma kurang baik dapat dilakukan hanya dengan melihat sekilas dan menjelajahi aplikasi. Namun, sebelum mulai memperbaiki kode berdasarkan asumsi, Anda harus mengukur performa kode untuk memahami apakah perubahan yang Anda lakukan akan membuat perbedaan.
Selama pengembangan dengan build debuggable aplikasi, Anda mungkin memperhatikan ada performa yang kurang baik dan mungkin ingin mulai mengatasi masalah ini. Namun, performa aplikasi debuggable tidak mewakili apa yang akan dilihat pengguna Anda, sehingga penting untuk memastikan dengan aplikasi non-debuggable bahwa memang ada masalah. Dalam aplikasi debuggable, semua kode harus diinterpretasikan oleh runtime.
Saat berpikir tentang performa di Compose, tidak ada aturan ketat yang harus Anda ikuti untuk mengimplementasikan fungsi tertentu. Anda tidak boleh melakukan hal berikut sebelum waktunya:
- Jangan mencari dan memperbaiki setiap parameter tidak stabil yang tersembunyi dalam kode Anda.
- Jangan menghapus animasi yang menyebabkan rekomposisi composable tersebut.
- Jangan melakukan pengoptimalan yang sulit dibaca berdasarkan firasat Anda.
Semua perubahan ini harus dilakukan dengan cara yang cermat menggunakan alat yang tersedia untuk memastikan bahwa perubahan tersebut mengatasi masalah performa.
Ketika menangani masalah performa, Anda harus mengikuti pendekatan ilmiah berikut:
- Tetapkan performa awal dengan pengukuran.
- Amati penyebab masalah.
- Modifikasi kode berdasarkan pengamatan.
- Ukur dan bandingkan dengan performa awal.
- Ulangi.
Jika Anda tidak mengikuti metode terstruktur, beberapa perubahan mungkin meningkatkan performa, tetapi perubahan lainnya mungkin menurunkannya. Pada akhirnya, Anda memperoleh hasil yang sama.
Sebaiknya tonton video berikut tentang cara meningkatkan performa aplikasi dengan Compose yang membahas proses memperbaiki masalah performa dan bahkan menunjukkan beberapa tips tentang cara meningkatkannya.
Membuat Profil Dasar Pengukuran
Sebelum menyelidiki masalah performa lebih dalam, buat Profil Dasar Pengukuran untuk aplikasi Anda. Di Android 6 (level API 23) dan yang lebih baru, aplikasi menjalankan kode yang diinterpretasikan saat runtime dan mengompilasi just-in-time (JIT) dan ahead-of-time (AOT) saat penginstalan. Kode yang diinterpretasikan dan dikompilasi JIT berjalan lebih lambat daripada AOT, tetapi membutuhkan lebih sedikit ruang pada disk dan memori. Itulah sebabnya tidak semua kode harus dikompilasi AOT.
Dengan menerapkan Profil Dasar Pengukuran, Anda dapat meningkatkan proses mulai aplikasi sebesar 30% dan mengurangi kode yang berjalan dalam mode JIT saat runtime sebanyak delapan kali lipat seperti yang ditunjukkan pada gambar berikut berdasarkan aplikasi contoh Now in Android:

Untuk informasi lebih lanjut mengenai Profil Dasar Pengukuran, lihat referensi berikut: