Erkenntnisse verstehen (Vorschauversion)

[Dieses Thema ist Teil der Dokumentation zur Vorabversion und kann geändert werden.]

Leistungseinblicke verteilt Einblicke in die folgenden Kategorien:

Leistung – insgesamt

Diese Erkenntnis fasst die Gesamtleistung Ihrer App als Kurzfassung unter der Erkentniss-ID Perf.Summary.Overview zusammen.

In dieser Erkenntnis können Sie die Gesamtleistung Ihrer App basierend auf dem Schweregrad sehen.

  • Kritisch: Weist auf eine schlechte Leistung hin.
  • Warnung: Zeigt an, dass die Leistung verbessert werden könnte.
  • Information: Zeigt eine gute Leistung an.

Verbesserungsmöglichkeiten

Wenn es darum geht, die App zu optimieren, können Sie sich die detaillierten Erkenntnisse aus Client, Netzwerk, Anpassungskategorien sowie Plugins, savedQeury und Einstellungen ansehen. Durch die Überprüfung dieser Erkenntnisse können einige umsetzbare Elemente abgeleitet werden.

Clientumgebung

Wenn Benutzer eine Power Apps-App auf ihren Geräten verwenden, können sich mehrere Faktoren auf die Leistung auswirken, z. B. Browsertyp, Browserversion und Hardwarespezifikation. In diesem Abschnitt können Sie sehen, welche Erkenntnisse Clientumgebungen überprüfen.

Browsertyp

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

Motivation

Bestimmte Webbrowsertypen können die Leistung Ihrer App beeinträchtigen. Die Verwendung nicht unterstützter oder nicht moderner Browser kann zu einer langsamen Leistung führen. Diese Erkenntnis liefert die Auswirkungen auf die Leistung verschiedener Browser, insbesondere nicht empfohlener Browser. Zum Beispiel: Power Apps hat die Unterstützung von Internet Explorer eingestellt.

Verbesserungsmöglichkeiten

Wenn Sie Benutzer mit alten Browsern haben, wie z. B. Internet Explorer, wechseln Sie zu einem modernen Chromium-basierten Browser. Wir empfehlen, dass Benutzer einen modernen Browser verwenden, wie z. B. Microsoft Edge oder Google-Chrome.

Hinweis

Einige Legacy-Anwendungen, die NPAPI nutzen, funktionieren nur mit Internet Explorer.

Browserversion

Erkenntnis-ID: Perf.Environment.Client.Browser.Version

Motivation

Mit dieser Erkenntnis wird überprüft, wie viele Nutzer Ihre App von einer alten Version eines Browsers verwenden. Auch wenn Benutzer moderne Browser verwenden und keine nicht empfohlenen Browsertypen wie Internet Explorer, sind ältere Browserversionen langsamer.

Verbesserungsmöglichkeiten

Benutzer sollten den Browser regelmäßig auf die neueste Version der aktualisieren. Unternehmenskunden können eine Gruppenrichtlinie auf eine bestimmte Version anwenden. Da Unified Service Desk (USD) auch die Standardbrowsereinstellung des Computers verwendet, müssen auch der Standardbrowsertyp und die Standardversion überprüft werden.

Mindestsystemanforderungen

Erkenntnis-ID: Perf.Environment.Device.MimimumRequirements

Motivation

Diese Erkenntnis prüft, ob die Umgebung des Benutzers die Mindestsystemanforderungen erfüllt. Sie können Anforderungen für Webanwendung überprüfen, um zu sehen, was die minimalen Systemanforderungen je nach App-Typ sind.

Im Allgemeinen finden einige Aktivitäten wie das Rendern, Skripten und das Herunterladen von Inhalten auf der Clientseite statt. Für solche Aktivitäten ist die Erfüllung der Mindestsystemanforderungen erforderlich.

Verbesserungsmöglichkeiten

Benutzer sollten die Hardware verwenden, die die Mindestsystemanforderungen für Power Apps erfüllt oder übertrifft.

HTTP-Protokoll

Erkenntnis-ID: Perf.Environment.Client.Browser.HttpProtocol

Motivation

Power Apps-Plattform unterstützt HTTP/2. Wenn Ihre App jedoch das HTTP/1.1-Protokoll für XMLHttpRequest (XHR)-Anfragen an Power Apps verwendet, kann dies aufgrund der gleichzeitigen Beschränkung von Anforderungen mit dem HTTP/1.1-Protokoll zu einer langsamen Leistung führen.

Verbesserungsmöglichkeiten

Wenn diese Erkenntnis einige Benutzer identifiziert hat, die das HTTP/1.1-Protokoll verwenden, empfehlen wir dringend, dass der Client dieser Benutzer das HTTP/2-Protokoll unterstützt.

Mehrere Konfigurationen und Netzwerkinfrastrukturen können das HTTP/2-Protokoll blockieren, z. B. ein VPN-Netzwerk, ein Proxyserver oder die Einstellungen der Internetoption des Geräts.

Benutzer können mit einem im Browser enthaltenen Entwicklungstool überprüfen, welches Protokoll verwendet wurde. In der Abbildung unten erfolgten Netzwerkaufrufe über HTTP/2.

Beispiel für HTTP 2-Netzwerkaufrufe

Wenn der Netzwerkprotokoll-Trace HTTP/1.1 anzeigt, kann dies folgende Ursachen haben:

  • Interneteinstellungen: In der Registerkarte Windows-Internetoption Fortgeschritten in der Systemsteuerung sind die Optionen HTTP2 verwenden und TLS 1.2 verwenden nicht aktiviert.
  • VPN und Proxy: Obwohl die Windows-Internetoption auf HTTP2 und TLS 1.2 eingestellt ist, kann der Browser zurückgreifen, wenn ein VPN oder Proxy die neueren Protokolle nicht unterstützt.

Nutzungsmuster

Diese Kategorie analysiert die Art der Seitenladevorgänge. Ein aussichtsreicher Seitenladevorgang rendert die Seite unter Verwendung von Caches und vorhandenen DOM-Objekten, während ein wenig aussichtsreicher Seitenladevorgang die Seite frisch rendert, indem bei Bedarf Ressourcen heruntergeladen werden. Obwohl Benutzer die Art des Seitenladevorgangs nicht unterscheiden, analysiert dieser Einblick und gibt Empfehlungen abhängig davon, welche Art von Seitenladevorgängen auf dem Client auftreten.

Seitenladetyp

Erkenntnis-ID: Perf.Performance.PageLoadType

Motivation

Das Laden aussichtsreicher Seiten ist schneller als das Laden wenig aussichtsreicher Seiten, da die erforderlichen Ressourcen aus lokalen Caches geladen werden.

Hinweis

Wenn ein Benutzer ein Formular von einer neuen Registerkarte öffnet oder eine neue Registerkarte in einem Browser öffnet, wird dies als wenig aussichtsreicher Seitenladevorgang betrachtet. Wenn ein Benutzer andere Formulare in der App innerhalb der aktiven Registerkarte eines Browsers öffnet, wird dies als aussichtsreicher Seitenladevorgang betrachtet.

Verbesserungsmöglichkeiten

Minimieren Sie das Öffnen neuer Registerkarten oder Browserfenster, um aussichtsreiche Seitenladevorgänge für eine schnellere Leistung zu erzielen. Versuchen Sie, Aktivitäten in einer einzigen Registerkarte zu halten, anstatt neue Registerkarten oder Browserfenster zu öffnen. Wir empfehlen auch, den Browser nicht im InPrivate‑ oder Inkognito-Modus auszuführen.

Seitenleistung

Viele modellgesteuerte Erstanbieter-Apps bestehen aus einem Dashboard, Ansichten (EntityList) und einem Formular, wenn es um den Seitentyp geht. Standardmäßig laden Benutzer ein Dashboard, obwohl App-Hersteller und Administratoren dies ändern können. Wenn ein Dashboard viele Diagramme und Kacheln enthält, kann dies dazu führen, dass das Dashboard langsam geladen wird. Wenn EntityList und Formulare angepasst werden, um viele Spalten hinzuzufügen und viele Datensätze anzuzeigen, kann dies auch dazu führen, dass die Seite langsam geladen wird. Daher kann die Überprüfung der Leistung pro Seite und pro Tabelle von Vorteil sein, da die Seitenladeleistung unterschiedliche Ursachen haben kann.

In diesem Abschnitt sehen Sie verschiedene Erkenntnisse zur Seitenleistung.

Langsame Dashboards

Erkenntnis-ID: Perf.ModelDriven.Page.Dashboard.SlowSQLQuery

Motivation

Langsame SQL-Abfragen oder die Verwendung zu vieler Diagramme und Kacheln in einem Dashboard können zu einer schlechten Leistung des Dashboards führen. Diese Erkenntnis weist auf die Dashboards hin, die von langsamen SQL-Abfragen betroffen sind. Wenn diese Einsicht aufgezeichnet wird, enthält der Bereich Details die Dashboard-ID für jedes Dashboard, das in der Einsicht enthalten ist.

Verbesserungsmöglichkeiten

So suchen Sie den Namen des Dashboards mithilfe der Dashboard-ID. Anschließend können Sie bestimmen, welche Dashboards für die Neugestaltung in Betracht gezogen werden sollen.

  1. Wechseln Sie zu Ihrer modellgesteuerten App, wie https://contoso.crm.dynamics.com.

  2. Ändern Sie die URL wie in diesem Beispiel gezeigt (https://contoso.dynamics.com/api/data/v9.1/systemforms[DashboardId]/name) durch Anhängen von api/data/v9.1/systemforms[DashboardId]/name an die App-URL.

  3. Sie erhalten eine OData-Anfrage ähnlich der folgenden. Das unten angezeigte Agenten-Dashboard stellt den benutzerfreundlichen Namen der angegebenen Dashboard-ID dar.

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

Synchrone Plug-Ins mit langsamen externen Anrufen

Erkenntnis-ID: Perf.Sandbox.Performance.Plug-ins.ExternalCall

Plug-Ins und benutzerdefinierte Workflow-Aktivitäten können über HTTP‑ und HTTPS-Protokolle auf Webdienste (externe Endpunkte) zugreifen. Wenn diese externen Dienste langsam ausgeführt werden, tritt beim Plug-In selbst eine Zeitüberschreitung oder eine langsame Leistung auf.

Motivation

Dieser Einblick überprüft die Leistung der externen Endpunkte und erkennt Plug-Ins in Ihrer App, die von den langsamen externen Aufrufen betroffen sind.

Verbesserungsmöglichkeiten

Mehr Informationen: Zugriff auf externe Webdienste (Microsoft Dataverse) - Power Apps | Microsoft-Dokumentation.

Anpassung

Entwickler können mit modellgesteuerten Apps viele verschiedene Anpassungen vornehmen, wie zum Beispiel:

  • Benutzerdefinierte JavaScript-Funktionen aufnehmen, um Ereignisse auf dem Client zu aktivieren.
  • Plug-Ins erstellen und implementieren, die zum Ausführen benutzerdefinierter Logik verwendet werden.
  • Benutzerdefinierte Tabellen und Daten definieren und speichern
  • Abhängige Komponenten definieren sowohl für benutzerdefinierte als auch für Standardtabellen, z. B. Formulare und Ansichten.

Aus Leistungssicht können alle diese Anpassungen in Situationen, in denen die Anpassung nicht den Best Practices und Empfehlungen entspricht, zu einer schlechten App-Reaktion führen. Entwickler können eine Lösungsprüfung ausführen, um ihre Anpassungen während der Entwicklungsphase zu validieren.

Die folgenden Erkenntnisse liefern auch Analyseergebnisse aus den Laufzeitbenutzerdaten Ihrer Anpassung.

Aufruftyp XML HTTP Request (XHR)

Erkenntnis-ID: Perf.ModelDriven.Customization.Client.Script.XMLHttpRequestType

Synchrone XMLHttpRequest-Aufrufe können für Endbenutzer schwerwiegende Leistungsprobleme verursachen, insbesondere wenn das Netzwerk langsam ist oder mehrere Aufrufe getätigt werden müssen. Der Browser friert ein und der Endbenutzer ist frustriert, wenn er nicht auf die Seite klicken, scrollen oder mit ihr interagieren kann.

Diese Einsicht verrät, ob es synchrone Methoden gibt und gibt Aufschluss über die damit verbundene Performance.

Motivation

Synchrone XHR-Aufrufe hindern den Browser daran, mehr Arbeit auszuführen, da der Browser warten muss, bis der synchrone Aufruf abgeschlossen ist, wodurch die Seite verlangsamt wird oder vollständig einfriert.

Verbesserungsmöglichkeiten

Wir empfehlen Ihnen, die im Datenbereich genannten Methoden der Einsicht von synchron in asynchron zu ändern. Weitere Informationen: Ihre modellgesteuerten Apps beschleunigen, indem Sie von synchronen Anfragen wegkommen

Veraltete Steuerelemente

Erkenntnis-ID: Perf.Customization.Controls.Deprecated

Einige ältere Steuerelemente für modellgesteuerte Apps wie Flip Switch, Calendar Control (V1), Linearer Schieberegler, Radial Knob, Arc Knob, Linear Gauge; Zusammen mit dem Websitevorschau-Steuerelement sind MultiSelectPicklistControl (V1) und das Flip Label veraltet. Einige dieser Steuerelemente können durch die neuen Steuerelemente ersetzt werden, die eher dem modernen Web und mobilen Geräten entsprechen. Weitere Informationen: Steuerelemente für neue modellgesteuerte Apps, Abschaffung veralteter Steuerelemente

Motivation

Die Verwendung veralteter Steuerelemente kann zu Leistungs‑, Zuverlässigkeits‑ und Zugänglichkeitsproblemen führen. Darüber hinaus wurden einige der Einschränkungen in diesen veralteten Steuerelementen mit den neuen Steuerelementen behoben. Zum Beispiel verwenden die Umschaltungssteuerelement und die Kalendersteuerung (V2) die Microsoft Fluent-Benutzeroberfläche.

Verbesserungsmöglichkeiten

  • Verwenden Sie das Steuerelement zum Umschalten als Ersatz für „Beschriftung kippen“ und „Umschalter“.
  • Verwenden Sie Kalender-Steuerelement (V2) als Ersatz für Kalender-Steuerelement (V1).
  • Bewerten Sie andere veraltete Steuerelemente, um festzustellen, ob sie in vorhandenen Formularen noch nützlich sind.

Beachten Sie, dass es zwischen der veralteten Version und den neuen Steuerelementen nur wenige wesentliche Designänderungen gibt.

Weitere Informationen zu den veralteten Steuerelementen finden Sie unter Abschaffen von modellgesteuerten App-Steuerelementen.

Sandbox-Leistung – dominante Plug-Ins

Erkenntnis-ID: Perf.Sandbox.Performance.Plug-ins.Dominant

Diese Erkenntnisse helfen uns, das dominante Plug-In zu identifizieren, d. h. das am häufigsten verwendete. Es zeigt auch an, ob eines der dominant verwendeten Plug-Ins mit einer Plug-In-Ausführungszeit von mehr als 100 Millisekunden im 95. Perzentil langsam war. Dieser Einblick listet bis zu drei dominante Plug-Ins auf.

Motivation

Langsame dominante Plug-Ins beeinflussen die Leistung. Diese Plug-Ins sollten untersucht werden.

Verbesserungsmöglichkeiten

Untersuchen Sie Plug-Ins mit langsamer Leistung. Sehen Sie sich Bewährte Methoden in Bezug auf die Plug-In‑ und Workflow-Entwicklung an.

Um das langsame Plug-In weiter zu untersuchen, können Sie die Einstellungen Plug-In-Ablaufverfolgungsprotokoll in Alle in Ihrer Entwicklungs- oder Testumgebung ändern und ermitteln, wo die Verzögerung liegt. Vergessen Sie jedoch nicht, die Einstellung zu deaktivieren, bevor Sie mit der Produktion beginnen. Weitere Informationen: Nachverfolgung und Protokollierung

Untersuchen Sie Plug-Ins mit langsamer Leistung. Einige der Gründe für langsame Plug-Ins werden hier beschrieben:

  • Zugehörige SQL-Abfragen wurden langsam ausgeführt, daher erhöhte sich die Ausführungszeit des Plug-Ins.
  • Befolgen Sie für Ihr Plug-In das Prinzip der einzigen Verantwortung und führen Sie keine Transaktionen mit erheblichen Transaktionsgrenzen durch.
  • Das Plug-In führt möglicherweise einige externe Anrufe durch, die langsam sind.
  • Die Plug-In-Logik ist nicht für Multithreading-Umgebungen optimiert. Überprüfen Sie Ihren Code.

Um das langsame Plug-In weiter zu untersuchen, können Sie die Einstellungen Plug-In-Ablaufverfolgungsprotokoll in Alle in Ihrer Entwicklungs- oder Testumgebung ändern und ermitteln, wo die Verzögerung liegt. Vergessen Sie nicht, die Einstellung zu deaktivieren, bevor Sie mit der Produktion beginnen. Weitere Informationen: Nachverfolgung und Protokollierung

Gespeicherte Abfrage mit führendem Platzhalter

Erkenntnis-ID: Perf.ModelDriven.Customization.SavedQuery.LeadingWildCard

Führende Platzhalter sind like‑ oder not like-Bedingungen, die einen Platzhalter (%) am Anfang einer Suchzeichenfolge verwenden. Ein Beispiel für eine schlecht geschriebene Anfrage ist:

<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>

Motivation

Ein führendes Platzhalterzeichen (%) in einer gespeicherten Abfrage kann zu einer Zeitüberschreitung oder langsamen Ausführung der Abfrage führen. Diese Erkenntnis weist auf solche langsamen gespeicherten Abfragen mit führenden Platzhaltern hin.

Verbesserungsmöglichkeiten

Vermeiden Sie führende Platzhalter. Im Suchschlüssel werden diese in SQL Server in „enthält“ übersetzt, der die Vorteile der Indexsuche nicht nutzt, sondern einen Scan durchführt. Wenn ein führender Platzhalter verwendet werden muss, schränken Sie den Suchumfang ein, indem Sie andere Bedingungen einschließen. Beachten Sie, dass es in Ordnung ist, nachgestellte Platzhalter (%) am Ende von Suchzeichenfolgen zu verwenden.

Konfiguration

Plug-In-Ablaufverfolgungsprotokoll-Einstellung

Erkenntnis-ID: Perf.Sandbox.Configuration.PluginTraceSettings

Entwickler können ihre Plug-Ins über Plug-In-Ablaufverfolgungsprotokolle debuggen. Die Dataverse-Administratoren können Plug-Ins und benutzerdefinierte Workflowaktivität-Ablaufverfolgung auf Aus, Ausnahme oder Alle einstellen.

Plug-In-Ablaufverfolgungsprotokoll-Einstellungen

Motivation

Das Plug-In-Ablaufverfolgungsprotokoll sollte auf nur auf Alle eingestellt sein, wenn Sie das Plug-In debuggen oder optimieren. Ein hohes Volumen an Ablaufverfolgungsprotokollierung kann bei SQL Server zu einem E/A-Overhead führen. Darüber hinaus kann das Löschen des Plug-In-Ablaufverfolgungsprotokolls zu Blockierungen oder Wartezeiten mit SQL Server führen.

Verbesserungsmöglichkeiten

In Ihrem Produktionsinstanz, wenn diese Einstellung Alle ist und das Volumen der von Ihrem Plug-In generierten Protokolle hoch ist, sollten Sie in Erwägung ziehen, es in Ausnahme zu ändern.

Um die Einstellung zu ändern, gehen Sie zur Registerkarte Einstellungen > Verwaltung > Systemeinstellungen > Anpassung. Weitere Informationen: Protokollierung und Verfolgung

Netzwerk

Netzwerkleistung

Netzwerklatenz und Durchsatz sind wichtige Faktoren, die sich auf die Erfahrung des Endbenutzers auswirken. Benutzer mit hoher Latenz und niedrigem Durchsatz werden beim Zugriff auf Einheitliche Oberfläche eher eine langsame Leistung feststellen. Diese Erkenntnis sagt uns, wie viele Benutzer sich in einem Netzwerk mit schlechter Leistung befinden und wie ihre Leistung war.

Motivation

Eine schlechte Netzwerkkonfiguration beeinträchtigt die App-Leistung.

Verbesserungsmöglichkeiten

Wenn viele Benutzer im Netzwerk sind und die Leistung schlecht ist, empfehlen wir den Benutzern, zu einem leistungsfähigeren Netzwerk zu wechseln.

Siehe auch

Was sind Leistungserkenntnisse?