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
- Clientumgebung
- Nutzungsmuster
- Seitenleistung
- Anpassung
- Konfiguration
- Netzwerk Da die Leistung einer App von verschiedenen Faktoren beeinflusst werden kann, kategorisieren Leistungserkenntnisse Bereiche, um zu überprüfen, wie viel Leistungsaufwand verursacht wird.
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.
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.
Wechseln Sie zu Ihrer modellgesteuerten App, wie https://contoso.crm.dynamics.com.
Ä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.
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
- KeepAlive auf false setzen, wenn Sie mit externen Hosts in einem Plug-in interagieren
- Timeout explizit setzen, wenn externe Anrufe in einem Plug-In getätigt werden
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.
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.