Performa Jetpack Compose
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Jetpack Compose menghadirkan performa luar biasa secara langsung. Konfigurasikan
aplikasi Anda menggunakan praktik terbaik untuk menghindari kesalahan umum dan mengoptimalkan performa
aplikasi Compose.
Konsep utama
Berikut adalah beberapa konsep utama untuk performa di Compose:
- Fase: Memahami fase komposisi, tata letak, dan menggambar
sangat penting untuk mengoptimalkan cara Compose mengupdate UI Anda.
- Profil Dasar Pengukuran: Profil ini mengompilasi kode penting terlebih dahulu,
sehingga mempercepat peluncuran aplikasi dan interaksi yang lebih lancar.
- Stabilitas: Tingkatkan stabilitas aplikasi untuk
melewati rekomposisi yang tidak perlu secara lebih efisien, sehingga meningkatkan performa.
Mengonfigurasi aplikasi Anda dengan benar
Jika aplikasi Anda berperforma buruk, mungkin ada masalah konfigurasi. Langkah pertama yang baik adalah memeriksa opsi konfigurasi berikut:
- Mem-build dalam Mode Rilis dengan R8: Coba jalankan aplikasi dalam mode
rilis. Mode debug berguna untuk menemukan banyak masalah, tetapi hal ini menimbulkan
biaya performa dan dapat menyulitkan untuk menemukan masalah lainnya. Anda juga harus
mengaktifkan pengoptimalan dan penyingkatan dengan compiler R8 untuk memastikan
build rilis yang berperforma baik dan efisien.
- Menggunakan Profil Dasar Pengukuran: Profil Dasar Pengukuran meningkatkan performa dengan
mengompilasi kode untuk perjalanan penting pengguna. Compose menyertakan profil
default, tetapi idealnya, Anda juga harus membuat profil khusus aplikasi. Pelajari
lebih lanjut Profil Dasar Pengukuran dalam dokumen performa Android umum
Pahami rangkaian alat yang tersedia untuk membantu Anda mengukur
dan menganalisis performa aplikasi Compose.
Praktik Terbaik
Saat mengembangkan aplikasi dengan Compose, ingatlah praktik terbaik berikut:
Untuk mengetahui detail selengkapnya, lihat panduan praktik terbaik.
Penayangan
Jika Anda menggunakan tampilan, bukan Compose, lihat panduan Meningkatkan
performa tata letak khusus.
Referensi Tambahan
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-26 UTC."],[],[],null,["# Jetpack Compose Performance\n\nJetpack Compose delivers excellent performance out of the box. Configure your\napp using best practices to avoid common pitfalls and optimize your Compose\napplication's performance.\n\nKey concepts\n------------\n\nThese are some of the key concepts for performance in Compose:\n\n- **[Phases](/develop/ui/compose/performance/phases):** Understanding the composition, layout, and drawing phases is crucial for optimizing how Compose updates your UI.\n- **[Baseline Profiles](/develop/ui/compose/performance/baseline-profiles):** These profiles precompile essential code, leading to faster app launches and smoother interactions.\n- **[Stability](/develop/ui/compose/performance/stability):** Increase the stability of your app to more efficiently skip unnecessary recompositions, improving performance.\n\nProperly configure your app\n---------------------------\n\nIf your app is performing poorly, there might be a configuration problem. A good\nfirst step is to check the following configuration options:\n\n- **Build in Release Mode with R8:** Try running your app in [release\n mode](/studio/run#changing-variant). Debug mode is useful for spotting many problems, but it imposes a performance cost and can make it hard to spot other issues. You should also [enable optimizing and shrinking](/build/shrink-code#enable) with the R8 compiler to ensure a performant and efficient release build.\n- **Use Baseline Profiles:** Baseline Profiles improve performance by precompiling code for critical user journeys. Compose includes a default profile, but ideally, you should create an app-specific one as well. [Learn\n more about Baseline Profiles in the general Android performance docs](/topic/performance/baselineprofiles/overview)\n\nTools\n-----\n\nFamiliarize yourself with the suite of [tools](/develop/ui/compose/performance/tooling) available to help you measure\nand analyze your Compose app's performance.\n\nBest Practices\n--------------\n\nWhen developing your app with Compose, keep these best practices in mind:\n\n- **[Avoid expensive calculations](/develop/ui/compose/performance/bestpractices#use-remember):** Use `remember` to cache the results of expensive calculations.\n- **[Help lazy layouts](/develop/ui/compose/performance/bestpractices#use-lazylist-keys):** Provide stable keys to lazy layouts using the `key` parameter to minimize unnecessary recompositions.\n- **[Limit unnecessary recompositions](/develop/ui/compose/performance/bestpractices#use-derivedstateof):** Use `derivedStateOf` to limit recompositions when rapidly changing state.\n- **[Defer state reads](/develop/ui/compose/performance/bestpractices#defer-reads):** Defer state reads as long as possible by wrapping them in lambda functions.\n- **[Use lambda modifiers for changing state](/develop/ui/compose/performance/bestpractices#defer-reads):** Use lambda-based modifiers like `Modifier.offset { ... }` for frequently changing state variables.\n- **[Avoid backwards writes](/develop/ui/compose/performance/bestpractices#avoid-backwards):** Never write to state that has already been read in a composable.\n\nFor more details, see the [best practices](/develop/ui/compose/performance/bestpractices) guide.\n\nViews\n-----\n\nIf you are working with views instead of Compose, see the dedicated [Improve\nlayout performance](/develop/ui/views/layout/improving-layouts) guide.\n\nAdditional Resources\n--------------------\n\n- **[App performance guide](/topic/performance/overview)**: Discover best practices, libraries, and tools to improve performance on Android.\n- **[Inspect Performance](/topic/performance/inspecting-overview):** Inspect app performance.\n- **[Benchmarking](/topic/performance/benchmarking/benchmarking-overview):** Benchmark app performance.\n- **[App startup](/topic/performance/appstartup/analysis-optimization):** Optimize app startup.\n- **[Baseline profiles](/baseline-profiles):** Understand baseline profiles."]]