App checker now includes performance optimization tips

As an app maker, there are a number of things that you can do to improve the performance of your Canvas app, but it can be difficult to track these areas down and understand how to solve them. The recent post on PowerApps Optimization Techniques highlights some of the key best practices to consider when making your app, but we are now going to make it easier for you to make some of these optimization decisions earlier.

In addition to checking for formula and accessibility issues, the App checker will also check for potential optimizations to improve the run-time performance of your app. The app checker will list each optimization identified and selecting the item in the list will provide additional information about the optimization and how to fix it.

Inefficient delay loading

To improve performance, the screens of an app are loaded into memory only as they are needed. This optimization can be impacted if there are dependencies between app screens. For example, if a screen references a property of a control from another screen, then both screens need to be loaded before the screen is displayed. A large dependency chain can be created and result in many screens loaded if screen 2, references screen 3, which references screen 4, and so on.

For this reason, try and avoid dependencies between screens. The recent PowerApps Optimization Techniques blog post discussed options to improve app start-up time and you can see here how the use of global variables can help avoid cross-screen dependencies.

Text input controls with large dependencies can impact performance

If you have multiple formulas or rules that reference the value of a Text input control, set the DelayOutput property of that control to true. The Text property of that control will be updated only after keystrokes entered in quick succession have ceased. For example, if you have a gallery control whose items are filtered on the values entered in the text control, then the gallery will be filtered as soon as anything is typed. This will cause the gallery to reload every time. With DelayOutput = true, there is a delay before the changes are detected. The formulas or rules won’t run as many times, and app performance will likely improve. If there are 20 or more references to the value of a Text input control, and the text input control has DelayOutput set to False, a warning will be shown in the App checker.

Limit the number of controls on a screen

The more controls you add to a screen, the more time PowerApps needs to render the page on the browser or device. There are a lot of varying factors, such as the type of control, however, at this time we are providing general feedback when we observe that there are more than 300 controls on a screen. This should not be a hard and fast rule, but it was important to indicate that this could be a possible reason if you experience slow loading times. We are continuously working on optimizations to the platform so this threshold may increase over time or this rule may be removed altogether.

Stay tuned as we are currently working on more rules and guidance that may assist you in tuning your App’s performance and aid in making best practice decisions easier and earlier in the App making process!