Performance with Collections
Every time you reference a data source in a gallery or formula (SharePointList), Power Apps makes a network call. If you have static or reference data (Menus, Categories, Statuses) that doesn’t change every second, you are wasting bandwidth and battery.
The solution is to load them into local memory at startup.
Local Cache vs. Network
// ❌ Slow: Calls SharePoint every time it renders or filters
Gallery1.Items = SP_CategoryList
// ✅ Fast: Load once, read a thousand times from memory
// In App.OnStart:
Concurrent(
ClearCollect(colMenus, SP_MenuList),
ClearCollect(colCategories, SP_CategoryList)
);
// In the Gallery:
Gallery1.Items = colCategories// ❌ Slow: Calls SharePoint every time it renders or filters
Gallery1.Items = SP_CategoryList
// ✅ Fast: Load once, read a thousand times from memory
// In App.OnStart:
Concurrent(
ClearCollect(colMenus, SP_MenuList),
ClearCollect(colCategories, SP_CategoryList)
);
// In the Gallery:
Gallery1.Items = colCategoriesBenefits
- Instant Speed: Navigation between screens feels native because the data is already there.
- Fewer “marching ants”: You reduce loading indicators.
- Delegation: You can manipulate collections locally without SharePoint delegation restrictions (for datasets < 2000 items).
Mind the volume
Do not try to load tables of 50,000 rows into a mobile collection. Stick to master or configuration data. For large volumes, continue using direct delegation.