Troubleshooting screen performance

This is not a question about overall performance. I also should preface it by saying that I know that multiple things on one screen can affect performance.

My question is how to deal with these things. Specifically, how can I easily analyze what is slowing a screen down? I have a screen with multiple things on it, each one of them perform well on their own. But I have a few lists nested in lists. And I have some counts (likes & ratings) inside a list. And all of this happens inside a list that is based on the location of the listing (using the new location services). Each one of these things on their own perform well, including the location. But when they all get together, the app can freeze for several seconds. Even after everything finishes rendering, it can still ignore user interaction for quite some time.

I have tried to remove things, one by one, to see if there is a significant improvement when I remove, for example, the star ratings component or a nested count (favorites). Some things make a reliable improvement, but I can’t seem to get a good read on how much it is improved. I have tested many different iterations, but the actual testing part isn’t very scientific because I can’t get any real measurements to see if one thing actually improves it significantly, or sustainably.

How can we go about quantifying our own testing? I’d like to know for sure that a particular widget on my page is the biggest performance hit, for example.

Any ideas other than pushing out 25 different versions of my app and testing each over and over again?

Hi @deetee ,

You can start with showing the components setting on your screen, if you are using filter, how many records will be shown.

Conditional and Visibility are also affecting.

Splitting screen can also help, as time to load those components are halved.

I’m not sure I follow any of this.

What am I looking for on the “components setting” on my screen?
What do you mean “conditional and visibility are also affecting”?
What do you mean by “splitting screen”?

Component setting is what you see on the left panel when you select them on screen.

If it is list, there should be filter setting

If it has visibility, it will take time to evaluate that visibility first

If it has actions and action using conditional, it need time to evaluate those too.

Without knowing those settings, it is difficult to give suggestion.

Okay, I understand what you are saying. And I am very aware that each decision-point on a screen will take time to process. My entire premise is that the way I’m building the screen introduces several of these at the same time. It’s what I want. And Adalo can do it. Unfortunately, combining them comes with a cost.

If I remove all the functionality that makes the app interesting and useful, the performance is there. But once I re-introduce the things that will make my users want to actually use the app, it crawls to a snails pace. I’m not doing anything that Adalo won’t let me do. I’m actually making smart UI/UX decisions. But the impact is costly.

So my question was NOT “why is this happening to me?”

Specifically, I’m asking if there is a way to measure the impact of each. If I knew that the visibility was taking 1.5 ms and each item in a list was taking .8 ms for example and a counter at the top of the page was taking 1.2 ms… I could make much better decisions.

Right now, in order to test this, it’s a lot of guess and test with zero data to go on. I was hoping for some better intel from the platform, or perhaps a third party tool that can help.

Deete,
I am exaclty looking for same answers, how to measure? Did you get those answers?
Adalo shares a big list of performance improvements however none of that matters to me as my app is crawling.
Hoping you were able to get pass and share your learnings.

Thanks!
Gunjan

Sadly, no. Ten months of radio silence on this.

I would think this would be important to EVERYONE.

Hopefully you raising this issue will make this topic rise again in the threads and we can get some attention from someone else who can help. Thanks for bringing it up!