Otimização de desempenho
Para determinar como otimizar o desempenho do aplicativo, vamos primeiro abordar o que acontece quando seu aplicativo é iniciado. Em seguida, discutiremos algumas fontes comuns de desempenho lento.
Fases de execução e fluxo de chamadas de dados do aplicativo
Antes mesmo que o usuário comece a interagir com seu aplicativo, há algumas fases de execução pelas quais o aplicativo passa. Depois delas, o aplicativo conduz um fluxo de chamadas de dados que varia de acordo com a fonte de dados.
Fases de execução nos aplicativos de tela
Os aplicativos de tela passam pelas seguintes fases de execução antes de mostrar a interface ao usuário:
- Autenticar o usuário: solicita que novos usuários entrem com suas credenciais para a conexão do aplicativo. Dependendo das políticas de segurança da organização, o mesmo usuário poderá ser solicitado novamente sempre que reabrir o aplicativo.
- Obter metadados: recupera metadados (como a versão da plataforma do Power Apps que o aplicativo executa e as fontes de dados do aplicativo).
- Inicializar o aplicativo: executa as tarefas na propriedade OnStart do aplicativo.
- Renderizar as telas: renderiza a primeira tela do aplicativo, inclusive os controles e os dados. O aplicativo passa pelo mesmo processo para renderizar todas as telas subsequentes que o usuário abre.
Fluxos de chamadas de dados nos aplicativos de tela
O protocolo OData é usado para enviar e receber dados para chamadas de dados de aplicativos de tela. Para a maioria das fontes de dados, a chamada de dados vai do aplicativo para o gerenciamento de API do Azure, do gerenciamento de API para a fonte de dados e retorna ao aplicativo percorrendo as mesmas etapas na ordem inversa. Se houver uma fonte de dados local (como SQL Server), a chamada também deverá prosseguir pelo gateway de dados local. Todos esses fluxos de chamadas podem afetar o desempenho e oferecer oportunidades potenciais de otimização.
Usar o Microsoft Dataverse como fonte de dados altera significativamente o fluxo de chamadas de dados. Quando sua chamada de dados vai para o Dataverse, a solicitação OData vai diretamente para o Dataverse sem passar pelo Gerenciamento de API do Azure, conectores ou gateways de dados. Em outras palavras, há menos passagens quando você usa o Dataverse.
Fontes comuns de desempenho lento nos aplicativos de tela
Agora que você tem um conhecimento básico das fases de execução e do fluxo das chamadas de dados, vamos abordar algumas das fontes mais comuns de baixo desempenho nos aplicativos de tela.
Design do aplicativo
O design de aplicativos é uma área ampla, pois há muitas maneiras de projetar um aplicativo. No entanto, alguns aspectos de design que podem afetar o desempenho do aplicativo incluem:
- O aplicativo faz uso intensivo do cliente, o que significa que ele obtém grandes conjuntos de dados em coleções de dados, inicialmente. Em seguida, ele usa os dados (talvez muitas vezes) em funções que processam no dispositivo do cliente, como JSON, Sort, AddColumns e GroupBy.
- O aplicativo tem uma fórmula longa em OnStart, em que dispara muitas chamadas de dados para outras telas, e essas chamadas de dados retornam grandes registros de dados.
Você pode examinar o design do aplicativo como uma possível fonte de desempenho lento usando o Monitor. Verifique quais chamadas de dados estão demorando muito e quantas chamadas de dados estão no aplicativo.
Além disso, tente equilibrar a carga de trabalho entre o cliente e o servidor. Delegue carga de trabalho ao servidor sempre que possível. É importante garantir que o aplicativo do cliente seja leve, consumindo pouca memória do cliente.
Gargalo na fonte de dados
Há várias causas possíveis de gargalos na fonte de dados. No entanto, a mais comum é que as tabelas na fonte de dados estão no centro da atividade quando muitas consultas transacionais ou não são direcionadas para a mesma tabela ou registro de usuários diferentes.
As chamadas OData podem se tornar lentas quando:
- A máquina de back-end que hospeda a fonte de dados tem poucos recursos.
- A instância SQL de back-end tem bloqueios, deadlocks ou contenção de recursos.
- O gateway de dados local não é íntegro.
Se houver esses problemas, ajuste a fonte de dados de back-end para evitar que o desempenho do aplicativo seja prejudicado.
Navegadores, dispositivos e locais de clientes
Os aplicativos de tela podem ser usados em diferentes dispositivos e navegadores e em diferentes locais, com diferentes condições de rede. Incentive os usuários a usar navegadores compatíveis, modernos e atualizados.
Localização geográfica do ambiente e do gateway de dados local
Os usuários podem acessar os aplicativos de tela globalmente. Recomendamos que você localize a fonte de dados perto de sua maior base de usuários. Por exemplo, quando seu aplicativo acessa a fonte de dados local, a localização do gateway de dados local deve ser próxima à fonte de dados para minimizar sobrecarga extra entre o data gateway e a fonte de dados.
Limitação temporária das solicitações de alto volume no back-end
Dependendo do design, um aplicativo de tela pode gerar muitas chamadas de dados em um curto período. Quando as chamadas de dados excedem os limites de limitação de um conector, o aplicativo é temporariamente limitado. Portanto, a escolha da fonte de dados e do conector certos é importante sob várias perspectivas, e é importante conhecer os limites específicos do conector. Você pode consultar a documentação sobre conectores para saber sobre as possíveis limitações.
Configuração Depurar aplicativo publicado habilitada
Habilitar a configuração Depurar aplicativo publicado fará com que seus aplicativos tenham desempenho mais lento. Você poderá republicar seu aplicativo com essa configuração desabilitada assim que determinar que não precisa mais exibir as expressões de origem durante a depuração do aplicativo publicado.
Para resumir, discutimos agora o que acontece quando um usuário começa a usar o aplicativo nas fases de execução e para o fluxo de chamadas de dados. Também abordamos algumas das formas comuns em que o desempenho do seu aplicativo pode ser prejudicado. Não abordaremos mais nada nesta unidade, mas você pode aprender Dicas e práticas recomendadas para melhorar o desempenho de aplicativos de tela úteis e considerações sobre desempenho otimizado no Power Apps.