Hey y'all! I'm working on improving retool's performance, and I need your help!
If you have a Retool app that's really slow for whatever reason, please DM me (or post here), and we can hop on a quick call and look into how to make it faster
Useful information to include would be:
what parts of the app are slow (e.g. "when I click this radio button it's slow" or "the page takes 10 seconds to load" or "this modal takes forever to open")
whether you're using end-user mode vs editor mode
how much data you're loading into the app (e.g. "i load 5000 rows at a time from redshift")
what device you're using (mobile vs desktop, windows vs mac, latest 2019 macbook pro vs old 2012 thinkpad)
Hey Abdul, for some reason my entire app sometimes takes 10-20 seconds to load and I occasionally get NaN for my stats, but if I reload the page 2-3 times everything works fine afterward. Do you know what can be causing this?
I would love your help. My tool is extremely slow in edit mode and maybe 3-5 second load time when viewing as a public page. I am only a fraction of the way done with what Iβm looking to do with the app so this is alarming. The drag and drop feature is something that is very laggy, and queries can sometimes take 3-4 seconds to load at times. I am not loading many rows at this time but may be accessing 4-5 tables on a given query or change in a field. Iβm running desktop on an HP Elitebook 2018 or newer. Thanks for the help.
Hey,
so I have a large table I load for a particular app (4600) rows. And the query loads in my test environment in 300ms but it takes ca. 4 seconds to load the table in retool.
Thanks for any help! Oh and this similarly slow for both the SQl query as well as using a REST api with the same data. So i think its something with the table thats slow.
Best
Not sure how much itβs related to the above, but just discovered that transformers always add some unwanted delay (resulting in interface lag) vs. having the exact same logic within component parameters. I believe that chained transformers makes it even worse. Would be great if that could get some attention, as writing complex logic within the small parameter input fields is a nightmare, let alone often repetitive.
UPDATE: 04/17/23 The dependency graph feature I mentioned below is now sunsetted in favor of our new Runtime, which should be automatically enabled for all your apps. Learn more here!
Hey @sergio.arturo! For this issue where your page is blank before queries load, we may have a solution for you
The serverside dependency graph feature is now available in Cloud and Onprem (as of 2.90)!
This feature will precompute the dependency graph on the backend and cache it, so it improves the initial page load at the end-user browser and will be most noticeable on lower-end machines. Please note this is still a very experimental feature so it is behind a feature flag! Let us know if you encounter any buggy behavior
How to use it:
The feature flag can be enabled from the app editor, go to app settings at the top right and enable "serverside dependency graph generation"
If you don't see the option you might need to enable the "Show experimental app level perf flags" org-level feature flag.
The first time the app is reloaded after enabling the feature (in presentation mode) it will compute the graph which may take longer, but then subsequent refreshes should be faster.
Also note that this is meant to improve initial page load only while in presentation mode.
@victoria
I enabled that flag in v2.90 Onprem.
However, there is no change in loading speed.
Is there anything I should do other than enable the flag in the "Beta" settings?
Hmm this may require a bit more debugging! So this flag is enabled for the app in question, but the load times are still slow? If you could write into us at support@retool.com with a screen recording of your app loading, that would be awesome.
Hmm, okay! Then I may need to manually add y'all to the beta so you can enable the flag for each of your apps. Would you mind DM'ing me with your org subdomains or writing into support@retool.com and asking for me?