I notice ( i know it is not good to test in debug mode ) that my app has very laggy scroll and than i look into layout inspector and try to count recomposition. I see for example that for some post recomposition occurs 5 times or even 8. Can this actually heavily affect my app performance? here is image showing layout inspector
Jetpack compose list performance recomposition counts
1.2k Views Asked by Jalson1982 At
1
There are 1 best solutions below
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in ANDROID-JETPACK-COMPOSE
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Inject a class into a composable function using hilt
- preventing duplicate text
- Jetpack compose - how I can hookup LiveData property from ViewModel with TextField in activity?
- MarkerInfoWindow doesn't hold the clicked marker position after list refresh in Compose Map
- How do you import functions from one page to another in Jetpack Compose?
- Jetpack compose ViewModels - should I have one ViewModel for different api calls?
- Change background color of clicked sentence in Text
- How to add and retrive pdf file on firebase in jetpack compose
- Made a widget with glance API in Jetpack Compose. Button filling the whole widget
- Jetpack Compose how to reverse edge-to-edge when leaving composition
- Can Anyone help me to load pdf file from firebase to user app by URL in jetpack compose?
- PullRefreshIndicator circle always displaying on jetpack compose
- Android Studio Using recently added resources in compose preview in multi-module project
- Android compose animations crashing in release builds
Related Questions in COMPOSE-RECOMPOSITION
- Why isn't my UI update in kotlin jetpack compose?
- Composable not recomposing on Android API 26 (Oreo) after changing the value of a MutableState
- text button color change to white after button recomposition (Compose - Android)
- How can I Optimise the performance of a Composable image
- White screen appears on orientation changes in Android using jetpack compose
- Unnecessary Recomposition of Composables when Changing TextField Value in Jetpack Compose
- What does Jetpack Compose remember actually do, how does it work under the hood?
- no recomposition (Jetpack Compose)
- How to trigger recomposition when modify the parent data using CompositionLocal
- How to force recomposition in Jetpack Compose?
- How to play Lottie animation from start every time in Jetpack Compose
- Is it possible to change the size of the Image composable without triggering recomposition
- Jetpack Compose LazyColumn Performance Issue
- Avoid recompositions of other elements when changing TextField value
- Why does this code get executed twice? If recomposition... what triggers the recomposition?
Related Questions in LAYOUT-INSPECTOR
- Jetpack Compose Button recomposed unnecessary
- Android Studio Layout Inspector doesn't work
- Layout Inspector doesn't work with Jetpack Compose
- Layout inspector not working, something couldn't be downloaded from maven
- Can not use compose inspector in Android Studio (Flamingo 2022.2.1)
- Layout inspector does not work while running Android app in Debug mode
- Compose inspection unavailable. Could not determine the version of the androidx.compose.ui:ui artifact. Try a different version of compose
- Android Studio Layout Inspector cannot display compose nodes - "try restarting the application"
- Unable to jump to particular xml file using layout inspector in android studio
- How to Inspect Style attributes (Font, Color codes, paddings, etc.) of a mobile app which built using Flutter?
- Button Press in jetpack compose showing multiple recomposition
- Android Studio Layout Inspector not working
- Jetpack compose list performance recomposition counts
- Android Studio Bumblebee Layout inspector live rendering not working
- Jetpack Compose: The layout inspector is not showing the menu for recomposition counts
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
It depends on what your expected recomposition counts should be. Recomposition in itself is not bad, in fact it is necessary to update the UI.
But you should not have unneccessary recompositions occur as this will be bad for performance.
From your screenshot it is difficult to say if these numbers are high or not. For instance is the screenshot taken after entering a specific screen for the first time, then maybe 5 seems high, but again it depends on your specific code and how many recompositions you expected in this specific screen.
I try to do a logical calculation myself of approximately how many recompositions I would expect of a particular critical UI element (such as a list etc) and then compare with the layout inspector. If the count in the layout inspector is much higher than I expected, then in a lot of cases my code was not optimal in terms of UI updates.
One concrete performance issue to watch out for with lists in Jetpack compose, is that you need to be careful about loading the data for the list inside a Composable. Let's say you want to load the data from a database from your ViewModel that calls a database load from your Repository using a coroutine and you want to load this data inside a Composable function. Here you should use the SideEffects to make sure data is only loaded once and not on recompositions (if the data does not change). One way to do this is to use produceState:
See the documentation for more info.