Desempenho do Jetpack Compose
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Jetpack Compose oferece excelente desempenho por padrão. Configure seu
app usando as práticas recomendadas para evitar problemas comuns e otimizar o desempenho
do app Compose.
Principais conceitos
Estes são alguns dos principais conceitos para o desempenho no Compose:
- Fases:entender as fases de composição, layout e exibição
é crucial para otimizar a forma como o Compose atualiza a interface.
- Perfis de referência:esses perfis pré-compilam o código essencial,
levando a inicializações de app mais rápidas e interações mais tranquilas.
- Estabilidade:aumente a estabilidade do app para pular com mais eficiência
as recomposições desnecessárias, melhorando o desempenho.
Configurar o app corretamente
Se o app estiver com baixo desempenho, talvez haja um problema de configuração. Uma boa primeira etapa é verificar as seguintes opções de configuração:
- Crie no modo de lançamento com o R8:tente executar o app no modo de
lançamento. O modo de depuração é útil para detectar muitos problemas, mas impõe um
custo de desempenho e pode dificultar a detecção de outros problemas. Também é necessário
ativar a otimização e a redução com o compilador R8 para garantir um
build de lançamento eficiente e com alto desempenho.
- Use perfis de referência:os perfis de referência melhoram a performance
pré-compilando o código para jornadas ideais do usuário. O Compose inclui um perfil
padrão, mas, idealmente, você também precisa criar um específico do app. Saiba
mais sobre os perfis de referência nos documentos gerais de desempenho do Android.
Conheça o pacote de ferramentas disponíveis para medir
e analisar o desempenho do app Compose.
Práticas recomendadas
Ao desenvolver seu app com o Compose, não se esqueça destas práticas recomendadas:
Para mais detalhes, consulte o guia de práticas recomendadas.
visualizações
Se você estiver trabalhando com visualizações em vez do Compose, consulte o guia dedicado Melhorar
a performance do layout.
Outros recursos
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]