Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für diese Power Platform Well-Architected Leistungseffizienz-Empfehlung:
| PE:06 | Verwenden Sie eine Logik, die leistungsfähig ist, und stellen Sie sicher, dass die Verantwortlichkeiten auf die Plattform übertragen werden. Verwenden Sie Logik nur für den vorgesehenen Zweck und nur dann, wenn dies erforderlich ist. |
|---|
In diesem Leitfaden werden die Empfehlungen zur Optimierung der Code- und Infrastrukturleistung beschrieben. Um Ihren Code und Ihre Infrastruktur zu optimieren, sollten Sie Ihre Komponenten nur für ihren Hauptzweck und nur bei Bedarf verwenden. Wenn Sie Code und Infrastruktur übermäßig beanspruchen, führt dies zu unnötigem Ressourcenverbrauch, Engpässen und einer langsamen Reaktion. Um diese Ineffizienzen auszugleichen, müssen Sie weitere Ressourcen bereitstellen, um die gleichen Aufgaben zu erledigen.
Definitionen
| Begriff | Definition |
|---|---|
| Parallelität | Wenn mehrere Aufgaben oder Prozesse gleichzeitig ausgeführt werden, aber nicht unbedingt zur gleichen Zeit. |
| Parallelität | Wenn mehrere Aufgaben oder Prozesse gleichzeitig ausgeführt werden. |
Wichtige Designstrategien
Zur Optimierung von Logik und Infrastruktur gehört die Feinabstimmung der Logik und der unterstützenden Infrastruktur, um die Leistungseffizienz zu verbessern. Sie erfordert eine leistungsstarke Logik, die Aufgaben schnell ausführt und keine Ressourcen verschwendet. Sie erfordert eine gut konzipierte Infrastruktur, die optimiert ist, sodass unnötige Komplexität vermieden wird. Ein Workload sollte die inhärenten Funktionen der Plattform nutzen. Dieser Ansatz trägt dazu bei, dass sowohl die Logik als auch die Infrastruktur in erster Linie für ihre Hauptzwecke und nur bei Bedarf verwendet werden.
Optimieren der Logikleistung
Um die Logikleistung zu optimieren, ändern Sie den Code, um den Ressourcenverbrauch zu senken, die Laufzeit zu minimieren und die Leistung zu verbessern. Sie können die Logik ändern, um die Effizienz und Geschwindigkeit einer App oder eines Flows zu verbessern. Verschleiern Sie Leistungsprobleme nicht einfach mit einem Brute-Force-Ansatz. Bei einem Brute-Force-Ansatz werden Rechenressourcen hinzugefügt, um die Codeleistung zu kompensieren, z. B. es werden zusätzliche Kapazitäten hinzugefügt, anstatt dass das zugrundeliegende Problem gelöst wird. Sie müssen Leistungsprobleme durch Optimierung beheben. Durch die Optimierung der Logikleistung wird die Auslastung der Systemressourcen maximiert, die Reaktionszeit verbessert, die Latenz verringert und die Benutzerfreundlichkeit verbessert.
Ihre Logik instrumentieren
Bei der Instrumentierung von Logik wird eine benutzerdefinierte Ereignisprotokollierung hinzugefügt, um Daten zu sammeln und die Logikleistung während der Laufzeit zu überwachen. Die Logikinstrumentierung ermöglicht es Entwicklungsfachkräften, Informationen über wichtige Metriken wie die Ausführungszeit zu sammeln. Durch die Instrumentierung von Logik können Entwicklungsfachkräfte Einblicke in langsame Logikpfade gewinnen, Leistungsengpässe identifizieren und die Logik optimieren, um die Leistungseffizienz zu verbessern.
Im Idealfall sollten Sie die Logikanalyse frühzeitig im Lebenszyklus der Softwareentwicklung durchführen. Je früher Sie ein Logikproblem erkennen, desto billiger ist es, es zu beheben. Sie sollten diese Logikanalyse so weit wie möglich automatisieren. Verwenden Sie dynamische und statische Codeanalyse-Tools, um den manuellen Aufwand zu reduzieren. Flow Checker kann beispielsweise Logik hervorheben, von der nicht erwartet wird, dass sie leistungsfähig ist, z. B. eine Abfrage, die keine Filterkriterien angibt. Beachten Sie jedoch, dass es sich bei diesen Tests immer noch um eine Simulation der Produktion handelt. Die Produktion bietet den klarsten Einblick in die Logikoptimierung.
Kompromiss: Logik-Monitoring-Tools werden wahrscheinlich die Kosten erhöhen.
Identifizieren von heißen Pfaden
Durch die Instrumentierung Ihrer Logik können Sie den Ressourcenverbrauch für verschiedene Logikpfade messen. Diese Messungen helfen Ihnen, langsame Pfade zu identifizieren. Langsame Pfade haben erhebliche Auswirkungen auf die Leistung und die Ressourcennutzung. Dabei handelt es sich um kritische oder häufig ausgeführte Abschnitte eines Programms, die eine hohe Leistung und geringe Latenz erfordern.
Gehen Sie folgendermaßen vor, um heiße Pfade zu identifizieren:
Laufzeitdaten analysieren: Sammeln Sie Laufzeitdaten und analysieren Sie sie, um Bereiche der Logik zu identifizieren, die die meiste verstrichene Zeit in Anspruch nehmen. Suchen Sie nach Mustern oder Logikabschnitten, die häufig ausgeführt werden oder lange dauern.
Leistung msessen: Verwenden Sie Profilerstellungstools oder Leistungstest-Frameworks, um die Ausführungszeit und den Ressourcenverbrauch verschiedener Logikpfade zu messen. Dieser Prozess hilft dabei, Engpässe und verbesserungswürdige Bereiche zu identifizieren. Beispielsweise können Sie überwachen in Power Apps, um ein besseres Verständnis der Funktionsweise der in Ihrer App enthaltenen Ereignisse und Formeln zu erhalten, sodass Sie die Leistung verbessern können.
Berücksichtigung der Geschäftslogik und des Benutzereffekts: Bewerten Sie die Bedeutung verschiedener Logikpfade basierend auf ihrer Relevanz für die Funktionalität der Anwendung oder kritische Geschäftsvorgänge. Bestimmen Sie, welche Logikpfade entscheidend sind, um Benutzenden einen Mehrwert zu bieten oder die Leistungsanforderungen zu erfüllen.
Logik optimieren
Bei der Optimierung der Logik geht es darum, die Struktur und den Entwurf der Logik zu verfeinern, damit Aufgaben mit weniger Ressourcen ausgeführt werden können. Die verbesserte Logik reduziert unnötige Vorgänge. Dies ermöglicht eine schnellere Ausführung bei geringerem Ressourcenverbrauch. Sie sollten alle unnötigen Vorgänge innerhalb des Logikpfads entfernen, die sich auf die Leistung auswirken könnten. Priorisieren Sie die Optimierung langsamer Pfade, um die größtmöglichen Leistungs- und Effizienzsteigerungen zu erzielen.
Um die Logik zu optimieren, sollten Sie die folgenden Strategien berücksichtigen:
Entfernen Sie unnötige Funktionsaufrufe: Überprüfen Sie Ihre Logik, und identifizieren Sie alle Funktionen, die für die gewünschte Funktionalität nicht unbedingt erforderlich sind und sich negativ auf die Leistung auswirken könnten. Wenn z. B. ein Funktionsaufruf eine zuvor im Code abgeschlossene Überprüfung ausführt, können Sie den unnötigen Aufruf der Validierungsfunktion entfernen.
Protokollierungsvorgänge minimieren: Die Protokollierung kann für das Debuggen und die Analyse hilfreich sein, eine übermäßige Protokollierung kann jedoch die Leistung beeinträchtigen. Bewerten Sie die Notwendigkeit jedes Protokollierungsvorgangs und entfernen Sie alle unnötigen Protokollierungsaufrufe, die für die Leistungsanalyse nicht kritisch sind. Es empfiehlt sich, Ihrem System das Ein- und Ausschalten der Protokollierung zu gestatten, um das Debuggen zu unterstützen, ohne Probleme mit der Produktionsleistung zu verursachen.
Schleifen und Bedingungen optimieren: Analysieren Sie Schleifen und Bedingungen in Ihrer Logik und identifizieren Sie unnötige Iterationen oder Bedingungen, die eliminiert werden können. Durch das Vereinfachen und Optimieren dieser Strukturen kann die Leistung Ihres Codes verbessert werden. Minimieren Sie Funktionsaufrufe in Schleifen und eliminieren Sie redundante Berechnungen. Erwägen Sie, Berechnungen nach außerhalb der Schleife zu verschieben.
Reduzieren Sie unnötige Datenverarbeitung: Überprüfen Sie Ihre Logik auf unnötige Datenverarbeitungsvorgänge, z. B. redundante Berechnungen oder Transformationen. Eliminieren Sie diese unnötigen Vorgänge, um die Effizienz Ihrer Logik zu verbessern. Verwenden Sie Dataverse berechnete Spalten, Rollupfelder oder Power Fx Spalten, anstatt z. B. den Wert im Code zu berechnen und mit einem Speichervorgang zu speichern.
Strukturierte Daten optimieren. Um Daten effizient zu speichern und abzurufen, wählen Sie geeignete Datenstrukturen und nur die erforderlichen Datenspalten aus. Wählen Sie die beste Datenstruktur für ein bestimmtes Problem aus. Eine geeignete Datenstruktur verbessert die Anwendungsleistung.
Minimieren Sie Netzwerkanforderungen: Wenn Ihre Logik das Erstellen von Netzwerkanforderungen beinhaltet (z. B. mithilfe einer Konnektoraktion), minimieren Sie die Anzahl der Anforderungen und optimieren Sie deren Nutzung. Wenn möglich Sammelanforderungen nutzen und unnötige Rundentrips vermeiden, um die Leistung zu verbessern.
Datenstrukturgröße reduzieren: Überprüfen Sie die Datenanforderungen, und entfernen Sie alle unnötigen Felder oder Eigenschaften. Optimieren Sie die Speichernutzung, indem Sie geeignete Datentypen auswählen und Daten effizient packen.
Asynchrone Arbeit ausführen: Prüfen Sie, ob die Arbeit in Ihrer Logik asynchron statt synchron ausgeführt werden könnte. Anstatt den Vorgang beispielsweise inline auszuführen, sollten Sie die Implementierung eines Power Automate Flows zur asynchronen Verarbeitung der Arbeit in Betracht ziehen.
Vor dem Anpassen konfigurieren Verwenden Sie nach Möglichkeit Standardkomponenten der Anwendung. Anpassungen wie Plug-Ins und JavaScript können die Leistung beeinträchtigen.
Steuerelemente minimieren. Zeigen Sie in den Formularen nur die Felder an, die Sie benötigen. Zu viele Felder können die Benutzeroberfläche überladen und die Leistung beeinträchtigen. Minimieren Sie die Anzahl der Steuerelemente in der Befehlsleiste, der Canvas-App oder auf der benutzerdefinierten Seite. Vermeiden Sie es, Galerien zu schachteln oder zu viele Komponenten zu einer Galerie hinzuzufügen.
Datenquellenabfragen optimieren. Laden Sie nur die Daten, die Sie in einer App oder einem Flow benötigen. Verwenden Sie serverseitige Ansichten, um Daten vorzufiltern und so die für Ihre Abfrage relevanten Daten einzugrenzen.
Lesen Sie die Leistungsempfehlungen für das Power Platform Produkt, mit dem Sie arbeiten. Bewerten Sie Ihre Logik anhand dieser Empfehlungen, um Bereiche mit Verbesserungspotenzial zu identifizieren.
Erfahren Sie mehr über die Power Automate Cloudflow-Codierungsrichtlinien, die Power Apps Codierungsrichtlinien und die Power Automate Desktopflow-Codierungsrichtlinien, um die Logik zu optimieren.
Trinkgeld
Verwenden Sie das Power CAT-Toolkit, um Codeüberprüfungen durchzuführen. Das Toolkit enthält viele der Codierungsrichtlinien aus dieser Dokumentation, um sicherzustellen, dass Ihre Lösungen effizient und wartbar sind. Das Toolkit kennzeichnet automatisch alle Muster, die diesen bewährten Methoden nicht entsprechen, sodass Sie potenzielle Probleme frühzeitig im Entwicklungsprozess beheben können. Dieser proaktive Ansatz verbessert die Qualität Ihres Codes und trägt zur Rationalisierung des Überprüfungsprozesses bei, wodurch es einfacher wird, hohe Standards in Ihren Projekten aufrechtzuerhalten. Die Integration des Power CAT Toolkit in Ihren Entwicklungs-Workflow stellt sicher, dass Ihre Lösungen auf einem soliden Fundament aufbauen und zu zuverlässigeren und skalierbareren Lösungen führen.
Kompromiss: Die Optimierung von Logik und heißen Ebenen erfordert Fachwissen. Die Identifizierung von Logikineffizienzen ist subjektiv und erfordert möglicherweise hochqualifizierte Mitarbeitende, die Sie möglicherweise von anderen Aufgaben abziehen müssen.
Nebenläufigkeit und Parallelität verwenden
Die Verwendung von Nebenläufigkeit und Parallelität umfasst das Ausführen mehrerer Aufgaben oder Prozesse entweder gleichzeitig oder in überlappender Weise, um Rechenressourcen effizient zu nutzen. Diese Techniken erhöhen den Gesamtdurchsatz und die Anzahl der Aufgaben, die ein Workload verarbeiten kann. Wenn Sie Aufgaben gleichzeitig oder parallel ausführen, kann dies die Laufzeit der Anwendung verkürzen und die Antwortzeiten erhöhen.
Nebenläufigkeit und Parallelität verteilen die Arbeitslast effektiv auf die Computingressourcen. Wenn Sie die Nebenläufigkeit oder Parallelität erhöhen, sollten Sie die Auswirkungen auf andere Systeme berücksichtigen, da Sie deren Grenzen überschreiten könnten. Beispielsweise kann eine gleichzeitige Schleife in einem Power Automate Flow, der jedes Element gleichzeitig verarbeitet, die Anforderungsgrenzwerte eines Konnektors überschreiten, der in der Logik der Schleife verwendet wird.
Verwenden Sie Parallelität. Parallelität ist die Fähigkeit eines Systems, mehrere Aufgaben oder Prozesse gleichzeitig auf mehreren Rechenressourcen auszulösen. Parallelität unterteilt eine Workload in kleinere Aufgaben, die parallel ausgeführt werden. Wenn Sie Logik parallel ausführen, verbessert sich die Leistung, da der Workload auf mehrere Verzweigungen verteilt wird.
Parallelität nutzen. Parallelität ist die Fähigkeit eines Systems, mehrere Aufgaben oder Prozesse auszuführen. Parallelität ermöglicht es verschiedenen Teilen einer Workload, unabhängig voneinander, Fortschritte zu erzielen, was die Gesamtleistung verbessern kann.
Gleichzeitige Ausführung: Die gleichzeitige Ausführung ermöglicht die simultane Ausführung derselben Logik. Das Beschränken der nebenläufige Ausführung auf eine kann dazu führen, dass die Logik serialisiert wird, was dazu führt, dass jeweils ein Element verarbeitet wird. Die Steuerung des Umfangs der gleichzeitigen Ausführung von Workloadelementen kann dabei helfen, die Ressourcennutzung während der Verarbeitung zu verwalten. Beispielsweise können Power Automate Flowschleifen mithilfe der Eigenschaft gleichzeitige Steuerung so konfiguriert werden, dass mehrere Aktionen parallel ausgeführt werden.
Anmerkung
Bevor Sie die Parallelität aktivieren, denken Sie daran, dass dies bedeutet, dass mehrere Aktionen gleichzeitig ausgeführt werden. Wenn Sie Daten als Teil der Schleife schreiben, stellen Sie sicher, dass das Ziel der Daten gleichzeitige Anforderungen verarbeiten kann.
Warteschlangen: Eine Warteschlange ist ein Speicherpuffer, der sich zwischen einer anfordernden Komponente (Produzent) und der verarbeitenden Komponente (Verbraucher) der Arbeitslast befindet. Für eine einzelne Warteschlange können mehrere Verbraucher vorhanden sein. Wenn die Aufgaben zunehmen, sollten Sie die Consumer skalieren, um den Bedarf zu decken. Der Produzent stellt Aufgaben in eine Warteschlange. In der Warteschlange werden die Aufgaben gespeichert, bis ein Consumer über Kapazität verfügt. Eine Warteschlange ist oft die beste Möglichkeit, Arbeit an einen Verarbeitungsdienst zu übergeben, bei dem Nachfragespitzen auftreten. Weitere Informationen finden Sie unter Warteschlangenbasiertes Lastenausgleichsmuster und Speicherwarteschlangen und Service Bus-Warteschlangen.
Hintergrundaufträge optimieren
Viele Anwendungen erfordern Hintergrundaufgaben, die unabhängig von der Benutzerschnittstelle ausgeführt werden. Die Anwendung kann den Auftrag starten und weiterhin interaktive Anforderungen von Benutzenden verarbeiten. Beispiele für Hintergrundaufträge sind Batchaufträge, prozessorintensive Aufgaben und Prozesse mit langer Ausführungszeit, z. B. Workflows. Hintergrundaufgaben sollten die Anwendung nicht blockieren oder Inkonsistenzen aufgrund eines verzögerten Betriebs verursachen, wenn das System unter Last steht. Weitere Informationen zur Optimierung von Hintergrundaufträgen finden Sie unter Empfehlungen für die Entwicklung von Hintergrundaufträgen.
Umsetzung in Power Platform
Instrumentierung von Code: Beim Erstellen von Canvas-Apps sollten leistungsstarke Muster verwendet werden, um die App-Effizienz zu verbessern, während Antimuster vermieden werden sollten. Weitere Informationen finden Sie unter Überblick über die Erstellung leistungsstarker Power Apps. Verwenden Sie Monitor in Power Apps , um Leistungsprobleme während der Entwicklung zu diagnostizieren und zu beheben.
Engagement und Ergebnisse messen: Beim Aufbau von Agenten ist die Verfolgung des Gesprächsengagements und der Ergebnisse unerlässlich, um Agent Leistungskennzahlen zu messen und Bereiche mit Verbesserungspotenzial zu entdecken.
Codelogik optimieren: Mit der Lösungsprüferfunktion können Sie eine umfangreiche Prüfung der statischen Analyse auf Ihren Lösungen für einen Satz von Regeln der bewährten Methode ausführen und diese problematischen Muster schnell ermitteln. Mit Flowprüfung erhalten Sie Einblicke in die Bereiche der Implementierung Ihres Flows, die ein Leistungsrisiko darstellen.
Verwenden von Parallelität und Nebenläufigkeit: Power Automate Cloud-Flows unterstützen Parallelität in Schleifen und Triggern. Beachten Sie, dass Grenzwerte für Parallelität, Schleifen und Aufteilungen gelten, die auf Ihrem Leistungsprofil basieren. Power Apps Unterstützung der Parallelität mithilfe der Parallelitäts-Funktion.
Optimierung der Dataverse Leistung: Microsoft Dataverse stellt ein erweiterbares Framework bereit, mit dem Entwickler äußerst anpassbare und individuelle Umgebungen erstellen können. Beim Anpassen, Erweitern oder Integrieren mit Dataverse sollten Sie die etablierten Richtlinien und bewährten Verfahren kennen. Weitere Informationen finden Sie unter Bewährte Verfahren und Hilfen für die Verwendung von Microsoft Dataverse.
Verwandte Informationen
- Verwalten der Lösungsleistung
- Grenzwerte für Parallelität, Schleifen und Aufteilungen in Power Automate
- Produktspezifische Anleitung zur Optimierung der Dynamics 365-Performance
- Leistungsanpassung und -optimierung für Customer Engagement-Apps
- Übersicht über die Erstellung leistungsstarker Power Apps
- Monitor-Übersicht
- Leistung, Stabilität und Zuverlässigkeit Ihrer Komponenten mit dem Lösungsprüfer verbessern
Leistungsfähigkeitscheckliste
Lesen Sie die vollständigen Empfehlungen.