Ottimizzazione delle prestazioni
Per determinare come ottimizzare le prestazioni di un'app è opportuno iniziare esaminando cosa accade all'app al suo avvio. Successivamente, verranno prese in esame alcune cause comuni di prestazioni rallentate.
Fasi di esecuzione e flusso di chiamate dati dell'app
Prima ancora che gli utenti inizino a interagire con l'app, questa attraversa alcune fasi di esecuzione, seguite da un flusso di chiamate dati che varia a seconda dell'origine dati.
Fasi di esecuzione nelle app canvas
Le app canvas attraversano le seguenti fasi di esecuzione prima di mostrare l'interfaccia a un utente:
- Autenticazione dell'utente: richiede agli utenti che si collegano per la prima volta di accedere con le proprie credenziali di connessione all'app. A seconda dei criteri di sicurezza dell'organizzazione, lo stesso utente potrebbe ricevere la stessa richiesta ogni volta che riapre l'app.
- Recupero dei metadati: recupera i metadati, come la versione della piattaforma Power Apps su cui viene eseguita l'app e le origini dati dell'app stessa.
- Inizializzazione dell'app: esegue le attività specificate nella proprietà OnStart dell'app.
- Rendering delle schermate: esegue il rendering della prima schermata dell'app, inclusi i controlli e i dati rappresentati nella schermata. L'app esegue lo stesso processo per eseguire il rendering di eventuali schermate successive aperte dall'utente.
Flussi di chiamate dati nelle app canvas
Le chiamate dati dalle app canvas usano il protocollo OData per inviare e ricevere dati. Per la maggior parte delle origini dati, la chiamata dati passa dall'app a Gestione API di Azure, da Gestione API all'origine dati per poi tornare all'app nell'ordine inverso. Se è presente un'origine dati locale (ad esempio un'istanza di SQL Server), la chiamata deve anche attraversare un gateway dati locale. Tutti questi punti di controllo del flusso di chiamate possono incidere sulle prestazioni e offrire potenziali opportunità di ottimizzazione.
L'uso di Microsoft Dataverse come origine dati cambia in modo significativo il flusso di chiamate dati. Quando la chiamata dati è diretta a un'origine Dataverse, la richiesta OData va direttamente a Dataverse senza passare attraverso Gestione API di Azure, connettori o gateway dati. In altre parole, ci sono meno punti di controllo da attraversare quando si usa Dataverse.
Cause comuni di prestazioni rallentate delle app canvas
Acquisita una conoscenza di base delle fasi di esecuzione e del flusso di chiamate dati, è possibile esaminare alcune delle cause più comuni di prestazioni ridotte nelle app canvas.
Progettazione dell'app
Quella della progettazione è un'area vasta perché i modi in cui un'app può essere progettata sono numerosi. Tuttavia, alcuni aspetti di progettazione che possono influire sulle prestazioni dell'app includono:
- L'app richiede un'intensa attività sul lato client, ovvero recupera inizialmente grandi set di dati in raccolte dati. Quindi usa i dati (forse molte volte) in funzioni che vengono elaborate sul dispositivo del client, come JSON, Sort, AddColumns e GroupBy.
- L'app contiene una formula lunga in OnStart che attiva potenzialmente molte chiamate dati per altre schermate e queste chiamate dati restituiscono record di dati di grandi dimensioni.
È possibile rivedere la progettazione dell'app come possibile origine di rallentamento delle prestazioni usando Monitoraggio. Controllare quali chiamate dati impiegano molto tempo e quante chiamate dati sono nell'app.
Cercare inoltre di bilanciare il carico di lavoro tra client e server. Delegare il carico di lavoro al server quando possibile. È importante rendere l'app client leggera in termini di consumo di memoria del client.
Collo di bottiglia nell'origine dati
Esistono molte possibili cause di colli di bottiglia nell'origine dati. La più comune è che le tabelle nell'origine dati sono al centro dell'attività quando utenti diversi indirizzano molte query (transazionali o non transazionali) alla stessa tabella o record.
Le chiamate OData potrebbero rallentare se:
- Il computer back-end che ospita l'origine dati ha poche risorse.
- L'istanza SQL di back-end presenta blocchi, deadlock o contese di risorse.
- Il gateway dati locale non è integro.
Quando si verificano questi problemi, ottimizzare l'origine dati di back-end per evitare di rallentare le prestazioni dell'app.
Browser, dispositivi e posizioni del client
Le app canvas si possono usare in diversi dispositivi, browser e posizioni con condizioni di rete variabili. Incoraggiare gli utenti a usare browser supportati, moderni e aggiornati.
Posizione geografica del gateway dati e dell'ambiente locale
Gli utenti possono accedere alle app canvas a livello globale. Si consiglia di posizionare l'origine dati vicino alla base di utenti più ampia. Ad esempio, quando l'app accede all'origine dati locale, la posizione del gateway dati locale dovrebbe essere prossima all'origine dati per ridurre al minimo il sovraccarico aggiuntivo tra il gateway dati e l'origine dati.
Limitazione temporanea di richieste ad alto volume nel back-end
A seconda della progettazione, un'app canvas potrebbe generare molte chiamate dati in breve tempo. Quando le chiamate dati superano i limiti impostati per un connettore, l'app è temporaneamente soggetta a limitazioni. Pertanto, la scelta dell'origine dati e del connettore corretti è importante da molti punti di vista, come è importante comprendere i limiti specifici del connettore. È possibile consultare la documentazione sui connettori per conoscere eventuali limitazioni che potrebbero avere.
Impostazione Debug app pubblicata abilitata
Se l'impostazione Debug app pubblicata è abilitata, le prestazioni delle app saranno più lente. È possibile ripubblicare l'app con questa impostazione disabilitata non appena stabilito che non è più necessario visualizzare le espressioni del codice sorgente durante il debug dell'app pubblicata.
Per riepilogare, l'unità ha descritto cosa succede quando un utente inizia a usare l'app, relativamente alle fasi di esecuzione e al flusso di chiamate dati. Ha inoltre illustrato alcune delle cause comuni per cui le prestazioni dell'app possono risultare ridotte. Non si tratterà di altro in questa unità, tuttavia è possibile consultare Suggerimenti e procedure consigliate per migliorare le prestazioni delle app canvas e Considerazioni per ottenere prestazioni ottimizzate in Power Apps.