Consellos e prácticas recomendadas para mellorar o rendemento das aplicacións de lenzo

Nos artigos anteriores, aprendeu sobre as fases de execución e fluxo de chamadas de datos, orixes comúns de rendemento lento e problemas e resolucións comúns de rendemento en aplicacións de lenzo. Tamén pode beneficiarse seguindo os consellos e as mellores prácticas deste artigo para aumentar o rendemento das aplicacións que crea.

Limitar as conexións de datos

Non engada máis de 30 conexións nunha aplicación. As aplicacións solicitan aos novos usuarios que inicien sesión en cada conector, polo que cada conector adicional aumenta a cantidade de tempo que precisa para iniciar a aplicación. Ao executar unha aplicación, cada conector require recursos de CPU, memoria e lgargura de banda de rede cando a aplicación solicita datos desa fonte.

Pode medir rapidamente o rendemento da súa aplicación activando as ferramentas para programadores en Microsoft Edgeou Google Chrome mentres executa a aplicación. É máis probable que a aplicación tarde máis de 15 segundos en devolver datos se solicita frecuentemente datos de máis de 30 conexións. Cada conexión engadida cóntase individualmente neste límite, independentemente do tipo de orixe de datos conectado, como táboas de Microsoft Dataverse ou SQL Server, ou listas creadas usando Microsoft Lists.

Limitar o número de controis

Non engada máis de 500 controis nunha aplicación. Power Apps xera un modelo de obxecto de documento HTML para representar cada control. Cantos máis controles engada, máis tempo de xeración Power Apps necesita.

Pode, nalgúns casos, obter o mesmo resultado e facer que a aplicación inicie máis rápido se emprega unha galería en vez de controis individuais. Ademais, quizais desexe reducir o número de tipos de control na mesma pantalla. Algúns controis (como o visualizador de PDF, a táboa de datos e a caixa de combinación) usan scripts de execución grandes e tardan máis en procesarse.

Optimizar a propiedade OnStart

Use a función ClearCollect para almacenar datos en caché localmente se non cambian durante a sesión do usuario. Use tamén a función Simultáneo para cargar orixes de datos simultaneamente; isto pode reducir a metade o tempo que necesita unha aplicación para cargar datos. Máis información: Función simultánea en Power Apps

Sen a función Simultáneo, a seguinte fórmula carga cada unha das catro táboas unha de cada vez:

ClearCollect( Product, '[SalesLT].[Product]' );
ClearCollect( Customer, '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )

Pode confirmar este comportamento nas Ferramentas para desenvolvedores do seu navegador, como se mostra na seguinte imaxe.

Diagrama que mostra as catro táboas cargándose unha tras outra.

Pode incluír a mesma fórmula na función Concurrent para reducir o tempo total que a operación necesita:

Concurrent( 
    ClearCollect( Product, '[SalesLT].[Product]' ),
    ClearCollect( Customer, '[SalesLT].[Customer]' ),
    ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ),
    ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ))

Con este cambio, a aplicación obtén as táboas en paralelo, como se mostra na seguinte imaxe.

Diagrama que mostra as catro táboas cargándose simultaneamente.

Nota

Para obter máis información sobre os problemas de rendemento e as resolucións relacionadas con OnStart, lea O evento OnStart precisa de axuste.

Suxestión

Recomendamos usar a propiedade App.StartScreen xa que simplifica o lanzamento da aplicación e aumenta o rendemento da aplicación.

Datos da busca de caché

Use a función Set para almacenar datos de caché das táboa de busca localmente para evitar que se recuperen repetidamente datos da fonte. Esta técnica optimiza o rendemento se os datos probablemente non se cambiarán durante unha sesión. Como se mostra no seguinte exemplo, os datos recupéranse da fonte unha vez e despois faise referencia a eles localmente ata que o usuario pecha a aplicación.

Set(CustomerOrder, Lookup(Order, id = “123-45-6789”));
Set(CustomerName, CustomerOrder.Name);
Set(CustomerAddress, CustomerOrder.Address);
Set(CustomerEmail, CustomerOrder.Email);
Set(CustomerPhone, CustomerOrder.Phone);

Este método é máis útil para datos como información de contacto, valores predeterminados ou información do usuario que non cambia con frecuencia. Tamén pode empregar esta técnica coas funcións Valores predeterminados e Usuario.

Evitar a dependencia do control entre pantallas

Para mellorar o rendemento, as pantallas dunha aplicación só se cargan na memoria segundo sexan necesarias. Esta optimización pódese dificultar se, por exemplo, se carga a pantalla 1 e unha das súas fórmulas usa a propiedade dun control da pantalla 2. Agora, a pantalla 2 debe ser cargada para cumprir a dependencia antes de que se poida amosar a pantalla 1. Imaxine que a pantalla 2 ten unha dependencia da pantalla 3, que ten outra dependencia da pantalla 4 etc. Esta cadea de dependencias pode facer que se carguen moitas pantallas.

Por este motivo, evite dependencias de fórmulas entre pantallas. Nalgúns casos, pode usar unha colección ou variable global para compartir información entre pantallas.

Hai unha excepción: no exemplo anterior, imaxínese que o único xeito de mostrar a pantalla 1 é navegando dende a pantalla 2. A continuación, a pantalla 2 xa estará cargada na memoria cando se vaia cargar a pantalla 1. Non se precisa traballo adicional para cumprir a dependencia da pantalla 2 e, polo tanto, non hai ningún impacto no rendemento.

Usar delegación

Se é posible, use funcións que deleguen o procesamento de datos na orixe de datos no canto de recuperar datos no dispositivo local para o seu procesamento. Se unha aplicación debe procesar datos localmente, a operación require moita máis potencia de procesamento, memoria e largura de banda de rede, especialmente se o conxunto de datos é grande.

Suxestión

Para coñecer as funcións delegables compatibles con conectores específicos, vaia á documentación dos conectores.

Para obter un exemplo de funcións delegables, considere unha columna de ID definida como un tipo de datos de número na lista creada mediante Microsoft Lists. As fórmulas do seguinte exemplo devolverán os resultados como se esperaba. Non obstante, a primeira fórmula é delegable mentres que a segunda non é delegable.

Fórmula Delegable?
Filter ('List data source', ID = 123 ) Si
Filter(`List data source', ID ="123") Non

Como supoñemos que a columna ID de SharePoint defínese co tipo de datos Número, o valor da dereita debe ser unha variable numérica en lugar dunha variable de cadea. En caso contrario, este desaxuste pode provocar que a fórmula non sexa delegable.

O uso de funcións non delegables e límites de filas de datos inadecuados para consultas non delegables pode ter efectos adversos no rendemento da aplicación. Máis información: Comprender a delegación nunha aplicación de lenzo

Usar Carga Retardada

Activa a función de vista previa para carga atrasada se a aplicación ten máis de 10 pantallas, sen regras e moitos controis que están en varias pantallas e están directamente ligados ao orixe de datos. Se crea este tipo de aplicacións e non activa esta función, o rendemento da aplicación pode sufrir porque os controis de todas as pantallas deben encherse incluso en pantallas que non estean abertas. Ademais, todas as pantallas da aplicación deben actualizarse sempre que cambie a orixe de datos, como cando o usuario engade un rexistro.

Traballando con grandes conxuntos de datos

Empregue fontes de datos e fórmulas que se poidan delegar para que as súas aplicacións funcionen ben mentres os usuarios poidan acceder a toda a información que precisan e evitar alcanzar o límite de fila de datos de 2000 para consultas non delegables. Para as columnas de rexistro de datos nas que os usuarios poden buscar, filtrar ou ordenar datos, use índices en columnas tal e como o describen as fontes de datos, como SQL Server ou SharePoint.

Nota

Para obter información adicional sobre como os grandes conxuntos de datos poden causar problemas de rendemento comúns en diferentes plataformas, lea Conxuntos de datos grandes que cargan lentamente en diferentes plataformas.

Republicar as aplicacións regularmente

Recoméndase aos fabricantes que publiquen as súas aplicacións regularmente. Como a plataforma de Power Apps se optimiza e desprega continuamente, a súa aplicación rexenérase dentro das últimas optimizacións da plataforma cando a volve publicar.

Evite repetir a mesma fórmula en varios lugares

Se varias propiedades utilizan a mesma fórmula (especialmente se é complexa), considere axustala unha vez e despois facer referencia á saída da primeira propiedade noutras posteriores. Por exemplo, non defina a propiedade DisplayMode dos controis A, B, C, D e E na mesma fórmula complexa. Pola contra, configure a propiedade DisplayMode de A na fórmula complexa, defina a propiedade DisplayMode de B no resultado da propiedade DisplayMode de A e así sucesivamente para C, D e E.

Activar DelayOutput en todos os controis de entrada de texto

Se ten varias fórmulas ou regras que fan referencia ao valor dun control de Entrada de texto, configure a propiedade DelayedOutput dese control en verdadeiro. A propiedade Texto dese control só se actualizará despois de que as pulsacións de teclas introducidas en rápida sucesión se deteñan. As fórmulas ou regras non se executarán tantas veces, e o rendemento da aplicación mellorará.

Evitar usar Form.Updates en regras e fórmulas

Se fai referencia a un valor de entrada do usuario nunha regra ou nunha fórmula usando unha variable Form.Updates, repita todas as tarxetas de datos do formulario e cree un rexistro cada vez. Para facer a súa aplicación máis eficiente, faga referencia ao valor directamente da tarxeta de datos ou o valor de control.

Utilizar DelayItemLoading e Loading spinner para mellorar o rendemento na Galería

Dependendo da configuración, a Galería pode tardar máis en procesar as filas visibles. Hai un par de formas de mellorar o rendemento.

  • Simplifique o modelo. Por exemplo, considere reducir o número de controis, referencias a buscas.
  • As galerías con modelos complexos poden beneficiarse de ter DelayItemLoading definido como certo e LoadingSpinner definido como LoadingSpinner.Controls. Este cambio mellorará a experiencia percibida cando o tempo de procesamento sexa maior. DelayItemLoading tamén diferirá a representación de modelos que permitirán que ao resto da pantalla mostrarse máis rápido xa que tanto a pantalla como a galería non compiten polos recursos.

Activar Precargar aplicación para obter un desempeño mellorado

Tamén pode cargar previamente a súa aplicación para aumentar o rendemento.

  1. Inicie sesión en Power Apps e, a seguir, seleccione Aplicacións no menú.

  2. Seleccione Máis accións (...) para a aplicación que desexa compartir e logo seleccione Configuración.

  3. No panel de configuración, axuste Cargar previamente a aplicación para mellorar o rendemento en Si. A aplicación precargarase entón.

Precargar aplicación para obter un desempeño mellorado.

  1. Para que os cambios teñan efecto para aplicacións incorporadas en Teams, elimine e engada a súa aplicación en Teams de novo.

    Nota

    Isto fai que os activos de aplicacións compilados sexan accesibles a través de puntos finais non identificados para permitir a súa carga antes da autenticación. Non obstante, os usuarios aínda só poden usar a súa aplicación para acceder aos datos a través de conectores só despois de completar a autenticación e a autorización. Este comportamento garante que os datos que unha aplicación recupere de fontes de datos non estarán dispoñibles para usuarios non autorizados. Os activos de aplicacións compilados inclúen unha colección de ficheiros JavaScript que conteñen texto autor en controis de aplicacións (como controis PCF), activos multimedia (como imaxes), o nome da aplicación e o URL do ambiente no que reside a aplicación.

    En xeral, as aplicacións deben recuperar medios e información de fontes de datos a través de conexións. Se hai que engadir medios e información á aplicación, sen saír dunha conexión, e considérase sensible pode querer desactivar esta configuración. Teña en conta que a desactivación desta configuración fará que os usuarios agarden un pouco máis para acceder a unha aplicación.

Datos de aplicacións almacenados no teu dispositivo

Para permitir aos usuarios recuperar os detalles da aplicación máis rápido cando a aplicación comeza, certos datos almacénanse localmente no seu dispositivo na caché do navegador. A información almacenada inclúe datos de aplicación, ambiente e conexión. Estes datos permanecerán almacenados no navegador en función dos límites de almacenamento de cada navegador. Para borrar os datos almacenados, consulte instrucións para cada navegador.

Pasos seguintes

Revise os estándares de codificación para maximizar o rendemento das aplicacións e manter as aplicacións máis fáciles de manter.

Consulte tamén

Comprender o fluxo de chamadas de datos e as fases de execución das aplicacións de lenzo
Problemas e resolucións comúns de rendemento da aplicación de lenzo
Orixes comúns de rendemento lento para unha aplicación de lenzo
Problemas frecuentes e resolucións de Power Apps
Resolución de problemas de inicio de Power Apps

Nota

Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)

Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).