web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Advice Needed to Impro...
Power Apps
Suggested Answer

Advice Needed to Improve Slow Performance in Canvas App

(1) ShareShare
ReportReport
Posted on by 1,026
Hi,
 
I am looking for some advice for resolving performance issues in a Canvas App that is being run as a Page in Dynamics 365.
 
The app displays various controls to allow filtering of a Dataverse table, where the results are then shown in a Gallery control. Each gallery control item displays several fields from a related Contact record as well as a status for 3 slots per week day (totalling 21 individual controls).
 
I have already been through a lot of the best practices and recommendations to reduce the amount of data being returned, and to avoid using specific function calls and lookups etc, and the query itself seems to be fairly quick to return. The main issue I am now facing is when scrolling the gallery and the app needs to display the next batch of records, it will freeze up for around 5-10 seconds.
 
I am still looking at ways to reduce the number of controls on the screen as the App Checker within Power Apps studio has calculated the screen complexity as 598 (with the recommended threshold being 300). The app uses a lot of containers in order to arrange and group controls and allow them to flow correctly when screen sizes change etc. I am assuming that these containers would be contributing to the overall complexity but I cannot find any documentation on how the complexity score is calculated. Is there perhaps a better way to arrange controls on the screen without the need for nesting containers.
 
Does anyone have any thoughts on the above, or even some other ways/best practices that I could use to potentially improve the usability of the app so that it is more responsive to the end users?
 
Thanks in advance
Categories:
I have the same question (0)
  • Suggested answer
    SaiRT14 Profile Picture
    1,990 Super User 2025 Season 1 on at
    Hi  
     
    Instead of 21 controls, consider using a single HTML Text Control to render formatted data for each gallery item. This reduces rendering complexity significantly.
    Use the Concurrent function to prefetch the next batch of data while the user is scrolling Concurrent(
        Set(nextBatch, Filter(DataSource, ID > Last(VisibleRecords).ID)),
        Set(currentBatch, Filter(DataSource, ID <= Last(VisibleRecords).ID))
    )
     
    Use collections to load and cache data at the app start. This reduces the need for real-time queries: ClearCollect(FilteredData, Filter(TableName, YourCondition))
     
    If you have a long list, use the Items property to load smaller batches incrementally FirstN(Sort(TableName, ColumnName, Ascending), 50)
     
    Use pagination techniques by dynamically loading more records as the user scrolls: Maintain a PageIndex variable to track the current data batch. Use Collect to add new items to the gallery data source If(PageIndex < TotalPages, Collect(ItemsCollection, FetchNextPage()))
     
    pls try - thanks
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 525 Most Valuable Professional

#2
Haque Profile Picture

Haque 308

#3
Kalathiya Profile Picture

Kalathiya 234 Super User 2026 Season 1

Last 30 days Overall leaderboard