Profiling
PowerShell Universal stellt einen Performance-Profiler zum Debuggen von Problemen bereit, bei denen die Plattform möglicherweise langsam reagiert. Dies ist vor allem beim Erstellen von Dashboards nützlich.
Profiling aktivieren
Profiling erhöht den Speicherverbrauch, da Profiling-Daten im Speicher abgelegt werden. Sie können Profiling aktivieren, indem Sie die appsettings.json-Eigenschaft Profiling konfigurieren. Standardmäßig ist sie false. Nach dem Aktivieren oder Deaktivieren von Profiling müssen Sie PowerShell Universal neu starten.
"Profiling": trueAuf Profiling-Daten zugreifen
Sie können auf Profiling-Daten zugreifen, indem Sie zu /profiler/results-index navigieren. Sie müssen als Administrator angemeldet sein, um auf diese URL zugreifen zu können.
Sie sehen eine Liste von Anfragen und deren Zeitmessungen.

Ein Klick auf die Anfrage zeigt eine Aufschlüsselung der Zeitmessungen an.

Einen API-Endpunkt profilieren
Sie können einen API-Endpunkt mit Measure-PSUBlock profilieren. Die API wird im Ergebnisindex nach URL aufgeführt.
Nehmen wir zum Beispiel eine API namens /process an.
Das Ergebnis des Profilings dieser API würde nach URL aufgeführt werden.

Beim Anzeigen des Profils für diese API würde der von uns gemessene Block aufgeführt werden.

Eine App profilieren
Sie können den integrierten Profiler mit Apps verwenden. Standardmäßig werden bestimmte interne Aktionszeiten aufgezeichnet. Sie können außerdem das Cmdlet Measure-PSUBlock verwenden, um bestimmte Blöcke innerhalb Ihres Dashboards zu messen.
Diese App verwendet zum Beispiel Measure-PSUBlock, um die Performance des Cmdlets Start-Sleep zu messen. Das Ergebnis ist, dass die Ausführung des Blocks eine Sekunde dauert.
Wenn Sie Anfragen im Profiler überprüfen, sollten Sie nach UDComponent\ElementPost und UDComponent\Element suchen. Dies sind Anfragen für Elemente innerhalb von Apps.
Unten sehen Sie die Beispielausgabe der oben gezeigten App. Beachten Sie, dass die URL die ID des Elements MyElement enthält. Sie werden außerdem feststellen, dass der Block WithinDashboard etwa 1 Sekunde dauert.

Nicht alle Zeitmessungen werden standardmäßig angezeigt. Sie können auf show trivial klicken, um alle Zeitmessungen auszuklappen.

Einen Job profilieren
Sie können Jobs profilieren, indem Sie Measure-PSUBlock innerhalb Ihres Skripts verwenden.
Nehmen wir zum Beispiel an, wir haben ein Skript, das Get-Service aufruft.
Beim Ausführen eines Profils für dieses Skript wird der Job als JobProfiler/{id} aufgeführt. Die ID entspricht der in der Admin-Konsole angezeigten Job-ID.

Das Profil enthält den Block, der gemessen wurde.

Zuletzt aktualisiert
War das hilfreich?