Hi Community,
I have built a rather big power app for a customer and everything went fine until recently. The performance is really dropping and loadtimes are very high. The App uses about 20 SharePoint lists which vary in size from a few records to about 3000 records at the moment of writing.
All those lists are connected to each other 'programmatically'. In which I mean. For example: In the InvoiceList I have a ClientID and ProjectID.
So when the user loads the gallery of invoices. For invoice there is a lookup in getting some clientdata and another lookup to get some projectdata. So of course this is generating a lot of networkrequests.
I already decreased that delegation limit from 2000 to 1200. Since most delegation warnings I receive are not really an issue. (at least not data wise).
Loading data in a collection at startup. Does this improve performance, or is loading data in cache just decreasing performance?
The application is running on a desktop with a high enough CPU and more then enough Memory and with high speed internet connection.
Could it also be that MS is reducing our performance as it might have noticed we are using "a lot" of server resources, with a basic license?
What are your thoughts about it?
Thanks for thinking along.
Bart
Your issue probably has little to do with any Microsoft-imposed API throttling or limits. The limits included with most accounts are generous, especially for a single app.
As an app maker, you will need to make compromises/decisions on:
There is no single "right answer" to these considerations and there's more to consider too. You may need to trade off a bit of performance for a better overall user experience, and vice-versa.
Hope that helps,
Bryan
Hi, @BCLS776 ,
Thanks for your insights. I changed the app now, to load the most frequently asked data to load in a collection at startup. This seems to have a good impact on overall performance.
However, is there a way I can be sure if I hit Microsoft API limits? Loading time yesterday evening after a long day of testing, and thus generating a lot of requests. App.OnStart could take 3 minutes. This morning, all data was loaded in 1 second! As you can see in the screenshot of the monitor below. I don't understand why there are such big differences in performance. The only thing I can think of is that my 'servertime' is being limited.
Hi Bart,
See this document for service limits associated with different licences. You could be running up against the limits after a big day of testing, which would explain getting throttled. There are connector limits too, but these tend to take the form of "100 requests per 60 seconds". I don't think your app will push those limits.
You can sign up for 30 day trials of premium licencing to try out. These offer higher API call limits and better service tiers (more responsive). If you notice a huge leap in performance when going to a premium licence, that's a sign you are pushing hard on the standard licence.
Do take further looks at how your app handles data. Lots of community members build complex, data intensive apps using standard licencing and they work great. I find 80-90% of my customers don't need premium licencing or they need it for only a few of their accounts. Throwing more compute resources at a problem isn't the only solution.
Bye for now,
Bryan
This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.
User | Count |
---|---|
8 | |
4 | |
1 | |
1 | |
1 |