Compartilhar via


Noções básicas sobre insights (versão preliminar)

[Este tópico faz parte da documentação de pré-lançamento e está sujeito a alterações.]

Os insights de desempenho distribuem insights nas seguintes categorias:

Desempenho geral

Este insight resume o desempenho geral do seu aplicativo como um resumo executivo no Insight ID Perf.Summary.Overview.

Neste insight, você pode ver o desempenho geral do seu aplicativo com base na gravidade.

  • Crítico: indica desempenho ruim.
  • Aviso: indica que o desempenho pode ser melhorado.
  • Informativo: indica bom desempenho.

Como melhorar

Quando chega a hora de otimizar o aplicativo, você pode ver os insights detalhados do cliente, rede, categorias de personalização, bem como plug-ins, savedQeury e configurações. Alguns itens acionáveis podem ser derivados pela revisão desses insights.

Ambiente de cliente

Quando os usuários experimentam um aplicativo do Power Apps em seus dispositivos, vários fatores podem afetar o desempenho, como tipo de navegador, versão do navegador e especificação de hardware. Nesta seção, você pode ver quais insights verificam os ambientes do cliente.

Tipo de navegador

ID do Insight: Perf.Environment.Client.Browser.Type

Motivação

Certos tipos de navegador da Web podem afetar o desempenho do seu aplicativo. O uso de navegadores sem suporte ou não modernos pode levar a um desempenho lento. Esse insight fornece as implicações de desempenho de diferentes navegadores, especialmente navegadores não recomendados. Por exemplo, o Power Apps descontinuou seu suporte ao Internet Explorer.

Como melhorar

Se você tiver usuários em navegadores antigos, como o Internet Explorer, mude para um navegador moderno baseado em Chromium. Recomendamos que os usuários executem um navegador moderno, como o Microsoft Edge ou o Google Chrome.

Observação

Alguns aplicativos herdados que utilizam NPAPI só funcionarão no Internet Explorer.

Versão do navegador

ID do Insight: Perf.Environment.Client.Browser.Version

Motivação

Esse insight verifica quantos usuários estão usando seu aplicativo em uma versão antiga de um navegador. Mesmo quando os usuários executam navegadores modernos, e não os tipos de navegadores não recomendados, como o Internet Explorer, as versões mais antigas dos navegadores têm um desempenho mais lento.

Como melhorar

Os usuários devem atualizar regularmente o navegador para a última versão. Os clientes corporativos podem aplicar uma política de grupo para uma versão específica. Como o USD (Unified Service Desk) também usa a configuração do navegador padrão do computador, também é necessário verificar o tipo e a versão do navegador padrão.

Requisitos mínimos do sistema

ID do Insight: Perf.Environment.Device.MimimumRequirements

Motivação

Essa percepção verifica se o ambiente do usuário atende aos requisitos mínimos do sistema. Você pode verificar os requisitos de aplicativo Web para ver quais são os requisitos mínimos do sistema, dependendo do tipo de aplicativo.

Em geral, algumas atividades como renderização, script e download de conteúdo acontecem no lado do cliente. Atender aos requisitos mínimos do sistema é necessário para tais atividades.

Como melhorar

Os usuários devem usar o hardware que atenda ou exceda os requisitos mínimos do sistema para Power Apps.

Protocolo HTTP

ID do Insight: Perf.Environment.Client.Browser.HttpProtocol

Motivação

A plataforma do Power Apps dá suporte ao HTTP/2. No entanto, se seu aplicativo estiver usando o protocolo HTTP/1.1 para solicitações XMLHttpRequest (XHR) para Power Apps, isso poderá causar desempenho lento devido à limitação simultânea de solicitações com o protocolo HTTP/1.1.

Como melhorar

Se esse insight tiver identificado alguns usuários que estão usando o protocolo HTTP/1.1, é altamente recomendável que o cliente desse usuário dê suporte ao protocolo HTTP/2.

Diversas configurações e infraestrutura de rede podem bloquear o protocolo HTTP/2, como uma rede VPN, servidor proxy ou configurações de opção de Internet do dispositivo.

Os usuários podem verificar qual protocolo foi usado a partir de uma ferramenta de desenvolvimento incluída com o navegador. Na figura abaixo, as chamadas de rede ocorreram sobre HTTP/2.

Exemplo de chamadas de rede HTTP 2.

Se o rastreamento do protocolo de rede indicar HTTP/1.1, isso poderá se dever ao seguinte:

  • Configurações da Internet: a guia Avançado da Opção da Internet do Windows nas opções Usar HTTP2 e Usar TLS 1.2 do Painel de Controle não estão habilitadas.
  • VPN e proxy: embora a Opção de Internet do Windows esteja configurada para usar HTTP2 e TLS 1.2, o navegador poderá cair quando uma VPN ou Proxy não der suporte aos protocolos mais recentes.

Padrão de uso

Essa categoria analisa o tipo de carregamento de página. Um carregamento de página a quente processa a página usando caches e objetos DOM existentes, enquanto um carregamento de página a frio processa a página nova baixando recursos quando necessário. Embora os usuários não distingam o tipo de carregamento de página, esse insight analisa e fornece recomendações dependendo do tipo de carregamento de página que ocorre no cliente.

Tipo de carregamento de página

ID do Insight: Perf.Performance.PageLoadType

Motivação

Os carregamentos de página a quente são mais rápidos do que os carregamentos de página a frio, pois os recursos necessários são carregados fora dos caches locais.

Observação

Quando um usuário abre um formulário de uma nova guia ou nova guia em um navegador, isso é considerado um carregamento de página a frio. Quando um usuário abre outros formulários no aplicativo na guia ativa de um navegador, é considerado um carregamento de página a quente.

Como melhorar

Para experimentar carregamentos de página a quente para um desempenho mais rápido, minimize a abertura de novas guias ou janelas do navegador. Tente manter as atividades em uma única guia em vez de abrir novas guias ou janelas do navegador. Também recomendamos não executar o navegador no modo InPrivate ou anônimo.

Desempenho de página

Muitos aplicativos orientados a modelos primários consistem em um painel, exibições (EntityList) e formulário no que diz respeito ao tipo de página. Por padrão, os usuários carregam um painel, embora os criadores de aplicativos e administradores possam alterar isso. Se um painel contiver muitos gráficos e blocos, isso poderá fazer com que o painel seja carregado lentamente. Da mesma forma, se EntityList e formulários forem personalizados para adicionar muitas colunas e exibir muitos registros, isso também pode fazer com que a página seja carregada lentamente. Portanto, verificar o desempenho por página e por tabela pode ser benéfico porque o desempenho do carregamento da página pode ter diferentes causas raiz.

Nesta seção, você pode ver vários insights relacionados ao desempenho da página.

Painéis lentos

ID do Insight: Perf.ModelDriven.Page.Dashboard.SlowSQLQuery

Motivação

Consultas SQL lentas ou o uso de muitos gráficos e blocos em um painel podem causar baixo desempenho do painel. Esse insight aponta para os painéis que são afetados por consultas SQL lentas. Quando esse insight é registrado, o painel Detalhes inclui a ID do painel para cada painel incluído no insight.

Como melhorar

Veja como pesquisar o nome do painel usando a ID do painel. Em seguida, você poderá determinar quais painéis devem ser considerados para reformulação.

  1. Acesse seu aplicativo baseado em modelo, como https://contoso.crm.dynamics.com.

  2. Modifique a URL conforme mostrado neste exemplo (https://contoso.dynamics.com/api/data/v9.1/systemforms[DashboardId]/nome) ao anexar api/data/v9.1/systemforms[DashboardId]/nome à URL do aplicativo.

  3. Você receberá uma solicitação OData semelhante à abaixo. O Painel Agente exibido abaixo representa o nome amigável da ID do painel fornecido.

    {"@odata.context":https://contoso.crm.dynamics.com/api/data/v9.1/$metadata#systemforms(2ff4a8cf-378b-e811-a964-000d3a30dc0a)/name,"value":"Contoso - Agent Dashboard"}

Plug-ins síncronos com chamadas externas lentas

ID do Insight: Perf.Sandbox.Performance.Plug-ins.ExternalCall

Plug-ins e atividades de fluxo de trabalho personalizadas podem acessar serviços Web (terminais externos) por meio de protocolos HTTP e HTTPS. Se esses serviços externos forem executados lentamente, o próprio plug-in terá seu tempo limite esgotado ou será executado lentamente.

Motivação

Esse insight verifica o desempenho dos terminais externos e detecta plug-ins em seu aplicativo que são afetados pelas chamadas externas lentas.

Como melhorar

Mais informações: Acessar serviços Web externos (Microsoft Dataverse) -Power Apps | Microsoft Docs.

Personalização

Os criadores podem fazer muitas personalizações diferentes com aplicativos baseados em modelo, como:

  • Ingerir funções JavaScript personalizadas para habilitar eventos no cliente.
  • Criar e implantar plug-ins usados para executar lógica personalizada.
  • Defina e armazene tabelas e dados personalizados.
  • Defina componentes dependentes para tabelas personalizadas e padrão, como formulários e exibições.

De uma perspectiva de desempenho, todas essas personalizações podem causar uma resposta insatisfatória do aplicativo em situações em que a personalização não segue as melhores práticas e recomendações. Os criadores podem executar o Verificador de Solução para validar suas personalizações durante a fase de desenvolvimento.

Os insights a seguir também fornecem resultados analíticos fora dos dados do usuário em tempo de execução de sua personalização.

Tipo de chamada XHR (XML HTTP Request)

ID do Insight: Perf.ModelDriven.Customization.Client.Script.XMLHttpRequestType

Chamadas XMLHttpRequest síncronas podem causar graves problemas de desempenho para os usuários finais, especialmente quando a rede está lenta ou há várias chamadas que precisam ser feitas. O navegador congela e o usuário final fica frustrado quando não consegue clicar, rolar ou interagir com a página.

Esse insight revela se existem métodos síncronos e indica o desempenho relacionado.

Motivação

As chamadas XHR síncronas impedirão que o navegador execute mais trabalho, pois o navegador deve aguardar a conclusão da chamada síncrona, fazendo com que a página fique lenta ou congele completamente.

Como melhorar

Recomendamos que você altere os métodos principais mencionados na Seção de Dados do insight de síncrono para assíncrono. Mais informações: Turbinar seus aplicativos baseados em modelo ao fazer a transição das solicitações síncronas

Controles preteridos

ID do Insight: Perf.Customization.Controls.Deprecated

Alguns controles mais antigos para aplicativos baseados em modelos, como Inversão de Chave, Controle de Calendário (V1), Controle Deslizante Linear, Botão Radial, Botão em Arco, Medidor Linear; além do controle Visualização de Site, MultiSelectPicklistControl (V1) e Inverter Rótulo foram preteridos. Alguns desses controles podem ser substituídos pelos novos controles, que estão mais de acordo com a Web moderna e dispositivos móveis em mente. Mais informações: Novos controles de Aplicativos Baseados em Modelo, substituição de controles antigos

Motivação

O uso de controles desatualizados pode causar problemas de desempenho, confiabilidade e acessibilidade. Além disso, algumas das limitações desses controles preteridos foram resolvidas com os novos controles. Por exemplo, o controle Alternância e o Controle de Calendário (V2) usam o Microsoft Fluent UI.

Como melhorar

  • Use o controle Alternar como um substituto para Inverter Etiqueta e Inverter Chave.
  • Use o Controle de Calendário (V2) como um substituto para o Controle de Calendário (V1).
  • Avalie outros controles preteridos para determinar se eles ainda são úteis nos formulários existentes.

Observe que há poucas mudanças significativas de design entre a versão preterida e os novos controles.

Para obter mais informações sobre os controles preteridos, acesse Substituição de controles de aplicativo baseado em modelo.

Desempenho de área restrita – plug-ins dominantes

ID do Insight: Perf.Sandbox.Performance.Plug-ins.Dominant

Esse insight nos ajudará a identificar o plug-in dominante ou, em outras palavras, aquele que é mais usado. Ele também indicará se algum dos plug-ins usados predominantemente teve desempenho lento com um tempo de execução do plug-in maior do que 100 milissegundos no 95º percentil. Este insight listará até três plug-ins dominantes.

Motivação

Os plug-ins dominantes lentos afetam o desempenho. Esses plug-ins devem ser investigados.

Como melhorar

Investigue os plug-ins de desempenho lento. Confira as práticas recomendadas em relação ao desenvolvimento de plug-ins e fluxo de trabalho.

Para investigar mais a fundo o plug-in lento, você poderá definir as configurações de Log de rastreamento de plug-in como Tudo em seu ambiente de desenvolvimento ou teste e determine onde está o atraso. No entanto, não se esqueça de desabilitar a configuração antes de ir para produção. Mais informações: Rastreamento e registro em log

Investigue os plug-ins de desempenho lento. Alguns dos motivos para plug-ins lentos são descritos aqui:

  • As consultas SQL associadas tiveram um desempenho lento, portanto, o tempo de execução do plug-in aumentou.
  • Siga o princípio de responsabilidade única para seu plug-in e não faça transações com limites de transação significativos.
  • O plug-in pode estar fazendo algumas chamadas externas, que são lentas.
  • A lógica de plug-in não é otimizada para ambientes multi-threading. Verifique seu código.

Para investigar mais a fundo o plug-in lento, você poderá definir as configurações de Log de rastreamento de plug-in como Tudo em seu ambiente de desenvolvimento ou teste e determine onde está o atraso. Não se esqueça de desabilitar a configuração antes de ir para produção. Mais informações: Rastreamento e registro em log

Consulta salva com curinga inicial

ID do Insight: Perf.ModelDriven.Customization.SavedQuery.LeadingWildCard

Os curingas iniciais são condições like ou not like que usam um caractere curinga (%) no início de uma cadeia de caracteres de pesquisa. Um exemplo de solicitação mal escrita é:

<fetch version="1.0" output-format="xml-platform" mapping="logical"> 
    <entity name="account"> 
        <attribute name="accountid" /> 
        <attribute name="accountnumber" /> 
        <filter type="and"> 
            <condition attribute="accountnumber" operator="like" value="%124" /> 
        </filter> 
    </entity> 
</fetch>

Motivação

Um caractere curinga à esquerda (%) em uma consulta salva pode fazer com que o tempo limite da consulta seja atingido ou seja executado lentamente. Esse insight aponta para essas consultas salvas lentamente com caracteres curinga iniciais.

Como melhorar

Evite usar caracteres curinga iniciais. Na chave de pesquisa, eles são traduzidos como "contains" no SQL Server, que não aproveitará a vantagem da busca de índice, mas fará uma varredura. Se for necessário usar um caractere curinga inicial, limite o escopo da pesquisa incluindo outras condições. Observe que não há problema em usar caracteres curinga (%) no final das cadeias de caracteres de pesquisa.

Configuração

Configuração do log de rastreamento de plug-in

ID do Insight: Perf.Sandbox.Configuration.PluginTraceSettings

Os criadores podem depurar seus plug-ins por meio de logs de rastreamento de plug-in. Os administradores do Dataverse podem definir o rastreamento atividade de fluxo de trabalho personalizado e de plug-ins como Desativado, Exceção ou Tudo.

Configurações do log de rastreamento de plug-ins.

Motivação

O log de rastreamento de plug-ins só deverá ser definido como Tudo quando você estiver depurando ou ajustando o plug-in. O alto volume de log de rastreamento pode causar sobrecarga de E/S no SQL Server. Além disso, a exclusão do log de rastreamento de plug-ins pode causar bloqueios ou esperas no SQL Server.

Como melhorar

Em sua instância de produção, se essa configuração for Tudo e o volume de registros gerados por seu plug-in for alto, considere alterá-la para Exceção.

Para alterar a configuração, vá para a guia Configurações > Administração > Configurações do Sistema > Personalização. Mais informações: Registro em log e rastreamento

Rede

Desempenho de rede

A latência e a taxa de transferência da rede são fatores importantes que afetam a experiência do usuário final. Os usuários com alta latência e baixa taxa de transferência provavelmente terão desempenho lento ao acessar a Interface Unificada. Esse insight nos diz quantos usuários estão em uma rede de baixo desempenho e como era seu desempenho.

Motivação

Uma configuração de rede ruim afetará o desempenho do aplicativo.

Como melhorar

Se houver muitos usuários na rede e o desempenho for ruim, recomendamos que os usuários mudem para uma rede com melhor desempenho.

Confira também

O que são insights de desempenho?