Otimização de desempenho

Concluído

Para determinar como otimizar o desempenho do seu aplicativo, vamos primeiro falar sobre o que acontece com seu aplicativo quando ele é iniciado. Em seguida, poderemos discutir algumas fontes comuns de baixo desempenho.

Fases de execução e fluxo de chamadas de dados do aplicativo

Mesmo antes que o usuário comece a interagir com o 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

Um aplicativo de tela passa pelas seguintes fases de execução antes de exibir a interface para um usuário:

  1. Autenticar o usuário: essa fase de execução solicita que os usuários novos 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á receber a solicitação novamente sempre que reabrir o aplicativo.
  2. Obter metadados: recupera os metadados, como a versão da plataforma Power Apps na qual o aplicativo é executado e as fontes das quais ele deve recuperar os dados.
  3. Inicializar o aplicativo: executa as tarefas especificadas na propriedade OnStart do aplicativo.
  4. Renderizar as telas: renderiza a primeira tela do aplicativo, incluindo os controles e os dados representados na primeira tela. Da mesma forma, o aplicativo passa pelo mesmo processo para renderizar qualquer tela subsequente aberta pelo usuário.

Fluxos de chamadas de dados nos aplicativos de tela

As chamadas de dados dos aplicativos de tela usam o protocolo OData para enviar e receber dados. Em muitos casos, a chamada de dados começa do aplicativo para o Gerenciamento de API do Azure, do Gerenciamento de API para a fonte de dados e, em seguida, deve retornar ao aplicativo na ordem inversa. Além disso, se houver uma fonte de dados local (como um SQL Server), a chamada também deverá passar por um gateway de dados local.

Todas essas passagens do fluxo de chamadas podem levar a considerações de desempenho e possíveis oportunidades de otimização. No entanto, há uma diferença significativa na chamada de dados se o seu aplicativo usa o Microsoft Dataverse como fonte de dados. Quando a chamada de dados acessa uma fonte do Dataverse, a solicitação OData vai diretamente para o Dataverse, sem passar pelo Gerenciamento de API do Azure, por 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 do aplicativo é uma área ampla, pois há várias maneiras de criar um aplicativo, no entanto, alguns aspectos que certamente afetam o desempenho do aplicativo incluem:

  • O aplicativo é de uso intensivo de cliente, o que significa que ele inicialmente armazena grandes conjuntos de dados em coleções de dados e, depois, usa os dados em várias telas para operações intensivas de cliente, como JSON, Sort, AddColumns e GroupBy.
  • O aplicativo tem uma fórmula extensa em OnStart, o que pode disparar muitas chamadas de dados desnecessárias nas telas, e essas chamadas retornam grandes registros de dados.

Para revisar o design do aplicativo como uma possível fonte de desempenho lento do aplicativo, monitore o aplicativo usando o Monitor. Verifique quais chamadas de dados estão demorando muito e quantas chamadas de dados disparam esse tipo de comportamento no aplicativo.

Tente também equilibrar a carga de trabalho entre o cliente e o servidor. Quando possível, a recomendação é delegar essa carga ao servidor. Da perspectiva do consumo de memória do cliente, é importante criar um aplicativo leve.

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

É possível usar os aplicativos de tela em diferentes dispositivos, navegadores e locais com condições de rede variáveis. 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. No entanto, recomendamos que você implante a fonte de dados em um local próximo à 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 de como você cria um aplicativo de tela, ele pode gerar várias chamadas de dados em pouco tempo. Quando as chamadas de dados excedem os valores de limitação de um conector, o aplicativo está sujeito a uma restrição temporária. 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 causa lentidão no desempenho dos aplicativos. Você pode republicar seu aplicativo com essa configuração desabilitada quando determinar que não precisa mais exibir expressões de origem ao depurar seu 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.