Optimizing Canvas App Startup Performance in Power Apps
Short answer
BCD Remove data retrieval calls from App.OnStart, enable preloading in app settings, and use the Concurrent() function for parallel data retrieval calls to optimize canvas app startup performance.
Question
Users report the app takes a long time to load data when opened.
You need to optimize performance when the app is started.
What are three actions you can perform? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
Key Takeaways
The main trap is keeping data retrieval in App.OnStart; moving it out and parallelizing remaining calls is key to faster launches.
Learn how to optimize Power Apps canvas app startup performance by removing heavy data calls from App.OnStart, enabling preloading, and using Concurrent() for parallel data loading.
Common mistake: Choosing Option E (ClearCollect) instead of B, because users think caching always helps, but it doesn't fix the blocking nature of OnStart execution without also moving the call.
Expert Analysis
The question asks for three actions to optimize the startup performance of a canvas app that displays large datasets. The key constraint is optimizing performance when the app is started, which specifically targets the App.OnStart event and initial load times.
- Option B (Remove data retrieval calls from App.OnStart): This is a critical optimization. Placing heavy data retrievals in
App.OnStartblocks the app's launch because the UI cannot render until these synchronous or long-running operations complete. Moving this logic to later events (like on-screen navigation) allows the app to appear immediately while data loads in the background. Commenters correctly identify this as a primary fix for perceived "slow start" issues. - Option C (Enable preloading in app settings): Power Apps provides a "Preload" setting (often referred to as enabling caching or preloading resources) that can help reduce latency by fetching necessary assets or data structures before the user interacts with them, effectively improving the perceived startup speed. This is a specific configuration option within the app settings designed for this purpose.
- Option D (Use the Concurrent function for data retrieval calls): When multiple independent data sources need to be loaded, using
Concurrentallows these calls to run in parallel rather than sequentially. This significantly reduces the total time required to gather all necessary data at startup compared to chaining them linearly.
Why other options are incorrect:
Option A: Moving transformation logic to* Power Fx usually degrades performance because Power Fx calculations happen client-side and can be slower than server-side transformations done at the source system level.
Option E: While ClearCollect caches data, it does not inherently optimize the startup* phase if the collection itself is triggered during App.OnStart. Without removing the call from OnStart (Option B), simply caching doesn't solve the blocking issue. Furthermore, Option C and D are more direct architectural optimizations for startup latency.
Exam Strategy
When asked about 'startup' or 'launch' performance in Power Apps, immediately evaluate the role of App.OnStart. If an option suggests keeping heavy operations there, it is likely wrong. Look for strategies that unblock the UI (removing calls), utilize built-in performance features (preloading), or optimize data fetching architecture (parallelism with Concurrent).
Frequently Asked Questions
Why should I remove data retrieval from App.OnStart?
What does the Concurrent() function do?
Discussion 1 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 1
-
exam_upskill 👍 1B. Remove data retrieval calls from the App.OnStart. C. Enable preloading in app settings. D. Use the Concurrent() function for data retrieval calls.
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.