Compartilhar via


Recomendações para otimizar a lógica

Aplica-se a esta recomendação da lista de verificação de eficiência de desempenho bem arquitetada: Power Platform

Educação Física:06 Use uma lógica de alto desempenho e garanta que ela transfira responsabilidades para a plataforma. Use a lógica apenas para o propósito pretendido e somente quando necessário.

Este guia descreve as recomendações para otimizar o desempenho do código e da infraestrutura. Para otimizar seu código e infraestrutura, você deve usar seus componentes apenas para sua finalidade principal e somente quando necessário. O uso excessivo de código e infraestrutura cria consumo desnecessário de recursos, gargalos e respostas lentas. Para compensar essas ineficiências, você deve adicionar mais recursos para realizar as mesmas tarefas.

Definições

Termo Definição
Simultaneidade Quando várias tarefas ou processos são executados ao mesmo tempo, mas não necessariamente ao mesmo tempo.
Paralelismo Quando várias tarefas ou processos são executados ao mesmo tempo.

Estratégias-chave de design

Otimizar a lógica e a infraestrutura envolve ajustar a lógica e a infraestrutura de suporte para melhorar a eficiência do desempenho. Requer lógica de desempenho que execute tarefas rapidamente e não desperdice recursos. Requer uma infraestrutura bem projetada e simplificada para evitar complexidade desnecessária. Uma carga de trabalho deve usar os recursos inerentes da plataforma. Essa abordagem ajuda a garantir que tanto a lógica quanto a infraestrutura sejam usadas principalmente para seus propósitos principais e somente quando necessário.

Otimizar o desempenho lógico

Para otimizar o desempenho lógico, modifique o código para reduzir o uso de recursos, minimizar o tempo de execução e melhorar o desempenho. Você pode modificar a lógica para melhorar a eficiência e a velocidade de um aplicativo ou fluxo. Não mascare problemas de desempenho com força bruta. Força bruta significa adicionar recursos de computação para compensar o desempenho do código, como adicionar capacidade extra em vez de abordar a fonte. Você precisa corrigir problemas de desempenho com otimização. Ao otimizar o desempenho lógico, você ajuda a maximizar a utilização dos recursos do sistema, melhora o tempo de resposta, reduz a latência e aprimora a experiência do usuário.

Instrumente sua lógica

A lógica de instrumentação se refere à prática de adicionar registro de eventos personalizado para coletar dados e monitorar o desempenho lógico durante o tempo de execução. A instrumentação lógica permite que os desenvolvedores reúnam informações sobre métricas importantes, como tempo de execução. Ao instrumentar a lógica, os desenvolvedores podem obter insights sobre caminhos lógicos críticos, identificar gargalos de desempenho e otimizar a lógica para melhor eficiência de desempenho.

O ideal é que você execute a análise lógica no início do ciclo de vida do desenvolvimento do software. Quanto mais cedo você detectar um problema de lógica, mais barato será consertá-lo. Você quer automatizar o máximo possível dessa análise lógica. Use ferramentas de análise de código dinâmica e estática para reduzir o esforço manual. Por exemplo, o Flow Checker pode destacar lógica que não deve ter bom desempenho, como uma consulta que não especifica critérios de filtro. No entanto, tenha em mente que esse teste ainda é uma simulação de produção. A produção fornece a compreensão mais clara da otimização lógica.

Compensação: Ferramentas de monitoramento lógico provavelmente aumentarão os custos.

Identificar caminhos quentes

Ao instrumentar sua lógica, você pode medir o consumo de recursos para diferentes caminhos lógicos. Essas medições ajudam a identificar caminhos quentes. Caminhos ativos têm um efeito significativo no desempenho e no uso de recursos. São seções críticas ou frequentemente executadas de um programa que exigem alto desempenho e baixa latência.

Para identificar caminhos de acesso ao código, considere estas etapas:

  • Analisar dados de tempo de execução: Colete dados de tempo de execução e analise-os para identificar áreas da lógica que consomem mais tempo decorrido. Procure padrões ou seções de lógica que são executados com frequência ou que demoram muito para serem concluídos.

  • Medir o desempenho: Use ferramentas de criação de perfil ou estruturas de teste de desempenho para medir o tempo de execução e o consumo de recursos de diferentes caminhos lógicos. Esse processo ajuda a identificar gargalos e áreas de melhoria. Por exemplo, você pode usar o Monitor no Power Apps para entender melhor como os eventos e fórmulas do seu aplicativo funcionam, para que você possa melhorar o desempenho.

  • Considere a lógica de negócios e o efeito sobre o usuário: Avalie a importância de diferentes caminhos lógicos com base em sua relevância para a funcionalidade do aplicativo ou operações comerciais críticas. Determine quais caminhos lógicos são cruciais para entregar valor aos usuários ou atender aos requisitos de desempenho.

Otimizar lógica

Otimizar a lógica significa refinar a estrutura e o design da lógica para executar tarefas com menos recursos. A lógica aprimorada reduz operações desnecessárias. Ele cria uma execução mais rápida com menos consumo de recursos. Você deve remover quaisquer operações desnecessárias no caminho lógico que possam afetar o desempenho. Priorize a otimização de caminhos ativos para obter os maiores ganhos de eficiência de desempenho.

Para otimizar a lógica, considere as seguintes estratégias:

  • Remova chamadas de função desnecessárias : Revise sua lógica e identifique quaisquer funções que não sejam essenciais para a funcionalidade desejada e que possam afetar o desempenho negativamente. Por exemplo, se uma chamada de função executar uma validação concluída anteriormente no código, você poderá remover a chamada de função de validação desnecessária.

  • Minimize as operações de registro : O registro pode ser útil para depuração e análise, mas o registro excessivo pode afetar o desempenho. Avalie a necessidade de cada operação de registro e remova quaisquer chamadas de registro desnecessárias que não sejam críticas para a análise de desempenho. Uma boa prática é permitir que seu sistema ative e desative o registro para auxiliar na depuração sem causar problemas de desempenho de produção.

  • Otimizar loops e condicionais : Analise loops e condicionais em sua lógica e identifique quaisquer iterações ou condições desnecessárias que podem ser eliminadas. Simplificar e otimizar essas estruturas pode melhorar o desempenho do seu código. Minimize chamadas de função dentro de loops e elimine cálculos redundantes. Considere mover os cálculos para fora do loop.

  • Reduza o processamento desnecessário de dados : Revise sua lógica para detectar quaisquer operações de processamento de dados desnecessárias, como cálculos ou transformações redundantes. Elimine essas operações desnecessárias para melhorar a eficiência da sua lógica. Por exemplo, use Dataverse colunas calculadas, campos de rollup ou Power Fx colunas em vez de calcular o valor no código e armazená-lo com uma operação de salvamento.

  • Otimize estruturas de dados. Para armazenar e recuperar dados de forma eficiente, Select use estruturas de dados apropriadas e apenas as colunas de dados necessárias. Escolha a melhor estrutura de dados para um problema específico. Uma estrutura de dados adequada melhora o desempenho do aplicativo.

  • Minimize as solicitações de rede: se sua lógica envolver fazer solicitações de rede (por exemplo, usando uma ação de conector), minimize o número de solicitações e otimize seu uso. Solicite em lote sempre que possível e evite viagens de ida e volta desnecessárias para melhorar o desempenho.

  • Reduza o tamanho da estrutura de dados: revise os requisitos de dados e elimine quaisquer campos ou propriedades desnecessários. Otimize o uso da memória selecionando os tipos de dados apropriados e compactando os dados de forma eficiente.

  • Realizar trabalho de forma assíncrona: Avalie se o trabalho pode ser feito de forma assíncrona em vez de síncrona na sua lógica. Por exemplo, em vez de executar a operação em linha, considere implementar um Power Automate fluxo para processar o trabalho de forma assíncrona.

  • Configure antes de personalizar. Use componentes de aplicativo padrão, se possível. Personalizações como plug-ins e JavaScript podem afetar o desempenho.

  • Minimize os controles. Exiba apenas os campos necessários nos formulários. Muitos campos podem desorganizar a interface do usuário e afetar o desempenho. Minimize o número de controles na barra de comandos, no aplicativo Canvas ou na página personalizada. Evite aninhar galerias ou adicionar muitos componentes a uma galeria.

  • Otimize consultas de dados. Carregue apenas os dados necessários em um aplicativo ou fluxo. Use visualizações do lado do servidor para pré-filtrar dados e restringir dados relevantes à sua consulta.

Revise as recomendações de desempenho específicas para o Power Platform produto com o qual você está trabalhando. Avalie sua lógica em relação a essas recomendações para identificar áreas de melhoria.

Tradeoff: Otimizar a lógica e os caminhos ativos requer experiência. Identificar ineficiências lógicas é subjetivo e pode exigir indivíduos altamente qualificados, que você pode precisar recrutar de outras tarefas.

Use simultaneidade e paralelismo

Usar simultaneidade e paralelismo envolve executar múltiplas tarefas ou processos simultaneamente ou de forma sobreposta para fazer uso eficiente dos recursos de computação. Essas técnicas aumentam o rendimento geral e o número de tarefas que uma carga de trabalho pode processar. Ao executar tarefas simultaneamente ou em paralelo, você pode reduzir o tempo de execução do aplicativo e aumentar o tempo de resposta.

A simultaneidade e o paralelismo distribuem efetivamente a carga de trabalho entre os recursos de computação. Ao aumentar a simultaneidade ou o paralelismo, considere o impacto em outros sistemas, pois você pode exceder seus limites. Por exemplo, um loop simultâneo em um fluxo processando cada item por vez pode ultrapassar os limites de solicitação de um conector usado na lógica do loop. Power Automate

Use paralelismo. Paralelismo é a capacidade de um sistema executar simultaneamente várias tarefas ou processos em vários recursos de computação. O paralelismo divide uma carga de trabalho em tarefas Gatilho que são executadas em paralelo. Quando você executa a lógica em paralelo, o desempenho melhora porque a carga de trabalho é distribuída entre várias ramificações.

Use simultaneidade. Simultaneidade é a capacidade de um sistema executar múltiplas tarefas ou processos. A simultaneidade permite que diferentes partes de uma carga de trabalho progridam de forma independente, o que pode melhorar o desempenho geral.

  • Execução simultânea: a execução simultânea permite que a mesma lógica seja executada simultaneamente. Limitar a execução simultânea a um pode ter o efeito de serializar a lógica, resultando no processamento de um item por vez. Controlar a quantidade de execução simultânea de itens de carga de trabalho pode ajudar a gerenciar o uso de recursos durante o processamento. Por exemplo, Power Automate loops de fluxo podem ser configurados para processar múltiplas ações em paralelo usando a propriedade Controle Simultâneo.

    Observação

    Antes de habilitar a simultaneidade, tenha em mente que isso significa que várias ações serão executadas ao mesmo tempo. Se você estiver gravando dados como parte do loop, certifique-se de que o destino dos dados possa lidar com solicitações simultâneas.

  • Filas: Uma fila é um buffer de armazenamento localizado entre um componente solicitante (produtor) e o componente de processamento (consumidor) da carga de trabalho. There pode ter vários consumidores para uma única fila. À medida que as tarefas aumentam, você deve dimensionar os consumidores para atender à demanda. O produtor coloca tarefas em uma fila. A fila armazena as tarefas até que um consumidor tenha capacidade. Uma fila geralmente é a melhor maneira de delegar trabalho a um serviço de processamento que enfrenta picos de demanda. Para obter mais informações, consulte Padrão de nivelamento de carga baseado em fila e Filas de armazenamento e filas do Service Bus.

Otimizar trabalhos em segundo plano

Muitos aplicativos exigem tarefas em segundo plano que são executadas independentemente da interface do usuário. O aplicativo pode iniciar o trabalho e continuar processando solicitações interativas dos usuários. Exemplos de trabalhos em segundo plano incluem trabalhos em lote, tarefas que exigem muito do processador e processos de longa duração, como fluxos de trabalho. Tarefas em segundo plano não devem bloquear o aplicativo ou causar inconsistências devido à operação atrasada quando o sistema estiver sob carga. Para obter mais informações sobre como otimizar trabalhos em segundo plano, consulte Recomendações para desenvolver trabalhos em segundo plano.

Facilitação do Power Platform

Código de instrumentação : Ao criar aplicativos Canvas, padrões de desempenho devem ser usados para melhorar a eficiência do aplicativo, enquanto antipadrões devem ser evitados. Para mais informações, consulte Visão geral da criação de desempenho Power Apps. Usar Monitor em Power Apps para diagnosticar e solucionar problemas de desempenho durante o desenvolvimento.

Medir o engajamento e os resultados : Ao construir copilotos, o rastreamento engajamento na conversação e resultados é essencial para medir as métricas de desempenho do copiloto e descobrir áreas de melhoria.

Otimizando a lógica do código: Com o recurso verificador de soluções , você pode executar uma análise estática avançada em suas soluções em relação a um conjunto de regras de práticas recomendadas e identificar rapidamente padrões problemáticos. Com o Flow Checker, você pode obter insights sobre quais áreas da implementação do seu fluxo representam um risco de desempenho?

Usando simultaneidade e paralelismo: Power Automate os fluxos de nuvem oferecem suporte à simultaneidade em loops e gatilhos. Observe que os limites de simultaneidade, loop e debatching se aplicam e são baseados no seu perfil de desempenho. Power Apps suporte à simultaneidade usando a função Concurrent .

Otimização do Dataverse desempenho: Microsoft Dataverse fornece uma estrutura extensível que permite aos desenvolvedores criar experiências altamente personalizadas e sob medida. Ao personalizar, estender ou integrar com o Dataverse, esteja ciente das orientações estabelecidas e das práticas recomendadas. Consulte Melhores práticas e orientação ao usar o Microsoft Dataverse.

Lista de verificação Eficiência de Desempenho

Consulte o conjunto completo de recomendações.