Consells i pràctiques recomanades per millorar el rendiment de les aplicacions de llenç
Als articles anteriors heu après les fases d'execució i el flux de trucada de dades, els orígens habituals d'un rendiment lent i els problemes de rendiment habituals i resolucions a les aplicacions del llenç. També podeu seguir els suggeriments i les pràctiques recomanades d'aquest article per millorar el rendiment de les aplicacions que creeu.
Limitar les connexions de dades
No afegiu més de 30 connexions en una aplicació. Les aplicacions demanen als usuaris nous que iniciïn sessió a cada connector, de manera que cada connector addicional augmenta el temps que l'aplicació necessita per començar. Mentre una aplicació s'executa, cada connector necessita recursos de CPU, memòria i amplada de banda de xarxa quan l'aplicació sol·licita dades de la font en qüestió.
Podeu mesurar ràpidament el rendiment de l'aplicació activant les eines de desenvolupador al Microsoft Edge o al Google Chrome durant l'execució de l'aplicació. La vostra aplicació té més probabilitats de tardar més de 15 segons a retornar les dades si sovint sol·licita dades de més de 30 connexions. Cada connexió afegida es compta individualment fins aquest límit, independentment del tipus de font de dades connectat, com ara Microsoft Dataverse, taules de l'SQL Server o llistes creades amb el Microsoft Lists.
Limitar el nombre de controls
No afegiu més de 500 controls en una aplicació. El Power Apps genera un model d'objecte de document HTML per representar cada control. Com més controls afegiu, més temps de generació necessita el Power Apps.
En alguns casos, podeu aconseguir el mateix resultat i que l'aplicació s'iniciï més ràpidament si utilitzeu una galeria en comptes de controls individuals. A més, pot ser que vulgueu reduir el nombre de tipus de control a la mateixa pantalla. Alguns controls (com ara el visualitzador PDF, la taula de dades i el quadre combinat) generen scripts d'execució grans i tarden més a representar-se.
Optimitzar la propietat OnStart
Utilitzeu la funció ClearCollect per emmagatzemar dades a la memòria cau localment si no canvia durant la sessió de l'usuari. A més, utilitzeu la funció Concurrent per carregar fonts de dades de manera simultània; això pot reduir a la meitat el temps que necessita una aplicació per carregar les dades. Més informació: Funció Concurrent al Power Apps
Sense la funció Concurrent, la fórmula següent carrega cadascuna de les quatre taules d'una en una:
ClearCollect( Product, '[SalesLT].[Product]' );
ClearCollect( Customer, '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )
Podeu confirmar aquest comportament a les Eines per a desenvolupadors del navegador, tal com es mostra a la imatge següent.
Podeu incloure la mateixa fórmula a la funció Concurrent per reduir el temps general que necessita l'operació:
Concurrent(
ClearCollect( Product, '[SalesLT].[Product]' ),
ClearCollect( Customer, '[SalesLT].[Customer]' ),
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ),
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ))
Amb aquest canvi, l'aplicació cerca les taules en paral·lel, com es mostra a la imatge següent.
Nota
Per obtenir més informació sobre els problemes de rendiment i les resolucions relacionades amb OnStart, llegiu la incidència OnStart s'ha d'ajustar.
Suggeriment
Us recomanem que utilitzeu la propietat App.StartScreen hora de simplificar l'inici de l'aplicació i fomenta el rendiment de l'aplicació.
Emmagatzemar les dades de cerca a la memòria cau
Utilitzeu la funció Set per emmagatzemar a la memòria cau dades de les taules de cerca localment a fi d'evitar la recuperació reiterada de dades de la font. Aquesta tècnica optimitza el rendiment si les dades probablement no canviaran durant una sessió. Com es mostra en l'exemple següent, les dades es recuperen de l'origen un cop i, a continuació, s'hi fa referència localment fins que l'usuari tanca l'aplicació.
Set(CustomerOrder, Lookup(Order, id = “123-45-6789”));
Set(CustomerName, CustomerOrder.Name);
Set(CustomerAddress, CustomerOrder.Address);
Set(CustomerEmail, CustomerOrder.Email);
Set(CustomerPhone, CustomerOrder.Phone);
Aquest mètode és més útil per a dades com ara la informació de contacte, els valors per defecte o la informació d'usuari que no canvia sovint. També podeu utilitzar aquesta tècnica amb les funcions Per defecte i Usuari.
Evitar la dependència de controls entre pantalles
Per millorar el rendiment, les pantalles d'una aplicació es carreguen en memòria només segons calgui. Aquesta optimització pot dificultar-se si, per exemple, la pantalla 1 es carrega i una de les seves fórmules utilitza la propietat d'un control de la pantalla 2. Ara la pantalla 2 s'ha de carregar per complir la dependència abans que la pantalla 1 es pugui visualitzar. Imagineu que la pantalla 2 té una dependència en la pantalla 3, que té una altra dependència en la pantalla 4, i així successivament. Aquesta cadena de dependència pot fer que s'hagin de carregar moltes pantalles.
Per aquest motiu, eviteu les dependències de fórmules entre les pantalles. En alguns casos, podeu utilitzar una variable o col·lecció global per compartir informació entre les pantalles.
Hi ha una excepció: a l'exemple anterior, imagineu que l'única manera de visualitzar la pantalla 1 és navegar-hi des de la pantalla 2. A continuació, la pantalla 2 ja s'haurà carregat a la memòria quan es carregui la pantalla 1. No es necessita cap feina addicional per complir la dependència de la pantalla 2 i, per tant, no hi ha cap impacte en el rendiment.
Utilitzar la delegació
Si és possible, utilitzeu funcions que deleguin el processament de dades a la font de dades en comptes de recuperar les dades al dispositiu local per al seu processament. Si una aplicació ha de processar dades localment, l'operació necessita molta més capacitat de processament, memòria i amplada de banda de xarxa, especialment si el conjunt de dades és gran.
Suggeriment
Per obtenir més informació sobre les funcions delegables admeses per connectors específics, aneu a la documentació de connectors.
Per veure un exemple de funcions delegables, penseu en una columna ID definida com a tipus de dades de Número a la llista creada amb el Microsoft Lists. Les fórmules de l'exemple següent retornaran els resultats tal com està previst. No obstant això, la primera fórmula és delegable, mentre que la segona no ho és.
Fórmula | Es pot delegar? |
---|---|
Filter ('List data source', ID = 123 ) |
Sí |
Filter(`List data source', ID ="123") |
No |
Com que suposem que la columna ID del SharePoint està definida amb el tipus de dades de Número, el valor de la dreta ha de ser una variable numèrica en comptes d'una variable de cadena. Altrament, aquesta discrepància podria provocar que la fórmula no sigui delegable.
L'ús de funcions que no es poden delegar i límit de files de dades inapropiats per a les consultes no delegables pot afectar negativament el rendiment de l'aplicació. Més informació: Informació sobre la delegació en una aplicació de llenç
Utilitzar la càrrega retardada
Activa la funció de previsualització per retardar-te la càrrega si l'aplicació té més de 10 pantalles, no té regles i molts controls que es troben en diverses pantalles i que estan directament vinculats al font de dades. Si creeu aquest tipus d'aplicació i no habiliteu aquesta característica, el rendiment de l'aplicació veure's afectat perquè els controls de totes les pantalles s'han d'emplenar encara que no estiguin oberts. A més, totes les pantalles de l'aplicació s'han d'actualitzar sempre que la font de dades canviï, per exemple, quan l'usuari afegeix un registre.
Treballar amb conjunts de dades grans
Utilitzeu fonts de dades i fórmules que es puguin delegar perquè les vostres aplicacions mantinguin un bon rendiment, mentre els usuaris poden accedir a tota la informació que necessiten, i per evitar arribar al límit de files de dades de 2000 per a consultes no delegables. Per a les columnes de registre de dades en les quals els usuaris poden fer cerques, filtrar o ordenar dades, utilitzeu índexs a les columnes tal com s'explica als orígens de dades, com ara SQL Server o SharePoint.
Nota
Per obtenir informació addicional sobre la manera com els conjunts de dades grans poden provocar problemes de rendiment comuns a diferents plataformes, llegiu Els conjunts de dades grans es carreguen lentament a diferents plataformes.
Torna a publicar les aplicacions periòdicament
S'anima els creadors a publicar les seves aplicacions amb regularitat. Com que la plataforma Power Apps s'optimitza i implementa contínuament, l'aplicació es torna a generar a l'última optimització de la plataforma quan la torneu a publicar.
Evitar que es repeteixi la mateixa fórmula en diversos llocs
Si hi ha diverses propietats que executen la mateixa fórmula (especialment si és complexa), considereu la possibilitat de definir-la una vegada i després fer referència a la sortida de la primera propietat a les posteriors. Per exemple, no definiu la propietat DisplayMode dels controls A, B, C, D i E com la mateixa fórmula complexa. En lloc d'això, definiu la propietat DisplayMode d'A com la fórmula complexa, definiu la propietat DisplayMode de B com el resultat de la propietat DisplayMode d'A, i així successivament per a C, D i E.
Habilitar DelayOutput a tots els controls d'entrada de text
Si teniu diverses fórmules o regles que fan referència al valor d'un control Entrada de text, definiu la propietat DelayedOutput d'aquest control com a true. La propietat Text d'aquest control s'actualitzarà només després que s'aturin les pulsacions de teclat en una successió ràpida. Les fórmules o regles no s'executaran tantes vegades i el rendiment de l'aplicació millorarà.
Evitar l'ús de Form.Updates a regles i fórmules
Si feu referència a un valor d'entrada d'usuari en una regla o una fórmula mitjançant una variable Form.Updates
, s'itera per totes les targetes de dades del formulari i crea un registre cada vegada. Per fer que l'aplicació sigui més eficient, feu referència al valor directament des de la targeta de dades o des del valor del control.
Ús de l'indicador giratori DelayItemLoading i Loading per millorar el rendiment a la Galeria
Segons la configuració, la Galeria pot trigar més a representar les files visibles. Hi ha un parell de maneres de millorar el rendiment.
- Simplificar la plantilla. Per exemple, valoreu la possibilitat de reduir el nombre de controls, referències a consultes.
- Les galeries amb plantilles complexes es poden visualitzar millor si es defineix DelayItemLoading com a true i LoadingSpinner com a LoadingSpinner.Controls. Aquest canvi millorarà l'experiència percebuda quan el temps de representació sigui més llarg. DelayItemLoading també diferirà la representació de plantilles, cosa que permetrà que la resta de la pantalla es representi més ràpidament perquè la pantalla i la galeria no competeixen pels recursos.
Habilitar la càrrega prèvia de l'aplicació per millorar-ne el rendiment
Opcionalment, podeu carregar prèviament l'aplicació per augmentar el rendiment.
Inicieu la sessió a Power Apps i, a continuació, seleccioneu Aplicacions al menú.
Seleccioneu Més accions (...) per a l'aplicació que voleu compartir i, a continuació, seleccioneu Configuració.
A la subfinestra de configuració, canvieu Càrrega prèvia de l'aplicació per a un rendiment millorat a Sí. L'aplicació es carregarà prèviament.
Per tal que els canvis tinguin efecte per a les aplicacions integrades al Teams, suprimiu i afegiu l'aplicació al Teams una altra vegada.
Nota
Això fa que els recursos d'aplicació compilats siguin accessibles a través de punts finals no autenticats per permetre carregar-los abans de l'autenticació. Tanmateix, els usuaris només poden utilitzar l'aplicació per accedir a les dades mitjançant connectors només un cop finalitzada l'autenticació i l'autorització. Aquest comportament garanteix que les dades que una aplicació recupera de les fonts de dades no estaran disponibles per als usuaris no autoritzats. Els elements d'aplicació compilats inclouen una col·lecció de fitxers JavaScript que contenen text creat als controls de l'aplicació (com ara controls PCF), recursos multimèdia (com ara imatges), el nom de l'aplicació i l'adreça URL de l'entorn on resideix l'aplicació.
En general, les aplicacions han de recuperar suports i informació de fonts de dades, mitjançant connexions. Si s'ha d'afegir contingut multimèdia i informació a l'aplicació, sense provenir d'una connexió, i es considera sensible, és possible que vulgueu desactivar aquesta configuració. Tingueu en compte que desactivar aquesta configuració farà que els usuaris esperin una mica més per accedir a una aplicació.
Dades de l'aplicació emmagatzemades al dispositiu
Per permetre als usuaris recuperar els detalls de l'aplicació més ràpidament quan s'inicia l'aplicació, determinades dades s'emmagatzemen localment al dispositiu a la memòria cau del navegador. La informació que s'emmagatzema inclou detalls de l'aplicació, de l'entorn i de la connexió. Aquestes dades romandran emmagatzemades al navegador en funció dels límits d'emmagatzematge de cada navegador. Per esborrar les dades emmagatzemades, consulteu les instruccions de cada navegador.
Passos següents
Reviseu els estàndards de codificació per tal de maximitzar el rendiment de l'aplicació i mantenir les aplicacions més fàcilment.
Consulteu també
Informació sobre les fases d’execució i el flux de trucades de dades de les aplicacions de llenç
Problemes comuns de rendiment i resolucions d'aplicacions de llenç
Orígens habituals de rendiment lent per a una aplicació de llenç
Problemes comuns i solucions per al Power Apps
Solució de problemes d'inici del Power Apps
Nota
Ens podeu dir quines són les vostres preferències d'idioma per a la documentació? Responeu una breu enquesta. (tingueu en compte que l'idioma de l'enquesta és l'anglès)
Trigareu uns set minuts a completar l'enquesta. No es recopilen dades personals (declaració de privadesa).