The biggest impact on reducing load times and to Optimise Power Apps performance is to properly manage the loading of data and images. Other actions can also make a significant improvement, including some of the new Preview Features listed below. Of couse good coding practice is also vital and I’ll cover that too in a future post

Optimise Power Apps Performance

Data Sources

  • Where data is changed infrequently or if data accessed by only one user, always load data into a Collection.  The App can then make changes to the local Collection, rather than working directly with the network Data Source direct.  The changes to the Collection can then be sent to the Data Source in the background

  • Don’t load network Data Sources on App ‘OnStart’.  All data will be loaded at once.  This is unlikely to be necessary and will slow the App loading.  Instead use the ‘OnVisible’ property of the particular screen requiring the data to spread the load

  • Load data when you need it or even better, pre-load it beforehand (but not on masse when an App starts or the first screen loads).  You can load additional data in the background while the user has already started using the app

  • If you must load network Data Sources together, use the Concurrent function so several sets of data are loaded in parallel rather than sequentially

  • Filter records from the data source before loading into Power Apps.  The is more  efficient that loading all the records and then filtering in Power Apps

  • If there is a static data that is used very frequently it can be hard coded into the app, though this practice is not ideal

Images

  • If large images are used in the App, or if users add their own images this can degrade performance. Depending on the Data Source, consider adding an Azure function to create a second image file of reduced size.  The lower quality image can be loaded first and then the higher resolution image can be overlaid once loaded into the App

  • Images can also be pre-loaded into a screen within a hidden gallery before they are required. They can then be very quickly loaded to the relevant screen when made visible

  • Regularly check the media folder to see if there are any assets (images, etc) that are large and if so, you can decide on the best way to handle them

Components

  • Consider using a component display while individual screens are loading. This won’t speed the load up but will improve the user experience
  • Rather than create lots of controls that do the same thing, use a standard component and reuse it throughout the App

Preview Features

  • Explicit Column Selection is a preview feature that works with CDS and SQL Server. It enforces downloading of just the columns that are required for the app to run and not the whole dataset

  • Delayed Loading is also a preview feature.  When this is switched on, data is only loaded when needed for an individual screen.  However, when this is switched on, avoid unnecessary dependencies between screens as this negates the benefits of this feature

Further Reading & References

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top