Seeking Guidance on Optimizing App Performance and Query Management in Retool

Hello Retool Community,

I'm currently developing an application and have encountered some concerns regarding its performance and structure, which I would appreciate your insights on.

  1. The Performance Score in the debug section is registering at 0%, as evidenced by the attached image. Could someone explain the implications of this score? At what threshold is a performance score considered acceptable for deployment? What are the potential consequences of launching an app with such a low performance score?

  2. Regarding Query Stats, my app is showing a staggering number of 83 queries, significantly beyond the 'red' threshold. While reviewing documentation, I've attempted to segment the app into multiple smaller apps using navigation to address this. How critical is it to limit the number of queries per app to under 10 for optimal performance?

  3. The Dependency Graph Nodes count for my app is exceptionally high. I'm curious to learn about the standard benchmarks for this metric and strategies to reduce it. Currently, my app is configured to auto-refresh data upon any addition or modification in the DB. Is it advisable to reconsider this feature to enhance overall app performance?

I'm eager to learn from the experiences and recommendations of the community to ensure the efficiency and user-friendliness of my application.

Thank you for your support!

Couple of things to note here - the performance tab constantly updates, so every time you perform an action or render new elements to the screen then the scoring changes.
If your app is making 83 queries on load (ie without any user interaction) then that's something you should look at investigating right away.
eg If you've pressed a "save" button 80 times then I wouldn't be too concerned.
I'd first recommend you refresh your app and see what the performance score is before interacting with it.

Second is the slowness of the queries. Anything over a few seconds for a very complex query is something you should seek to investigate and remove/resolve.
20+ seconds for your get queries sounds very slow - I'd try to optimise those queries, simplify them where possible and load only what's needed, investigate the database itself and look at adding indexes, I'd also look at what could be cached too.

In terms of implications this will have a very negative effect on user experience if the app feels slow/unresponsive. You'll likely get complaints or people won't use it or they'll click randomly to make it work faster and cause more problems.

Lastly, I wouldn't put too much faith in the Performance number itself - it's a guide to help you optimise you app and identify where the slowest queries are and biggest performance bottlenecks are.
Ultimately you should be testing this with your users to get their feedback and understanding their expectations in terms of what good performance looks like to them.

1 Like

Thank you so much!
I was so confused about the query stats.
And we decided to separate this into multi-apps.
Hope you have a wonderful day!