Fase dan performa Compose

Saat Compose memperbarui frame, Compose akan melalui tiga fase:

  • Komposisi: Compose menentukan konten yang akan ditampilkan. Library ini menjalankan fungsi composable dan membuat hierarki UI.
  • Tata letak: Compose menentukan ukuran dan penempatan setiap elemen dalam hierarki UI.
  • Gambar: Compose benar-benar merender elemen UI individual.

Compose dapat dengan cermat melewati salah satu fase tersebut jika tidak diperlukan. Misalnya, satu elemen grafis beralih antara dua ikon dengan ukuran yang sama. Karena elemen ini tidak berubah ukuran, dan tidak ada elemen hierarki UI yang ditambahkan atau dihapus, Compose dapat melewati fase komposisi dan tata letak dan menggambar ulang elemen yang satu ini.

Namun, kesalahan coding dapat menyulitkan Compose untuk mengetahui fase mana yang dapat dilewati dengan aman, dalam hal ini Compose menjalankan ketiga fase, yang dapat memperlambat UI Anda. Jadi, banyak praktik terbaik performa adalah untuk membantu Compose melewati fase yang tidak perlu dilakukan.

Untuk mengetahui informasi selengkapnya, lihat panduan Fase Jetpack Compose.

Prinsip umum

Ada beberapa prinsip umum yang perlu diikuti yang dapat meningkatkan performa secara umum:

  • Jika memungkinkan, pindahkan penghitungan dari fungsi composable Anda. Fungsi composable mungkin perlu dijalankan kembali setiap kali UI berubah. Setiap kode yang Anda masukkan ke dalam composable akan dieksekusi ulang, kemungkinan untuk setiap frame animasi. Batasi kode composable hanya pada yang diperlukan untuk mem-build UI.
  • Tunda pembacaan status selama mungkin. Dengan memindahkan pembacaan status ke composable turunan atau fase berikutnya, Anda dapat meminimalkan rekomposisi atau melewati fase komposisi sepenuhnya. Anda dapat melakukannya dengan meneruskan fungsi lambda, bukan nilai status untuk status yang sering berubah dan dengan memilih pengubah berbasis lambda saat Anda meneruskan status yang sering berubah. Anda dapat melihat contoh teknik ini di bagian Menunda pembacaan selama mungkin di Mengikuti praktik terbaik.

Referensi Tambahan