Übung 2: Auswerten des Schnellstarts mithilfe des Windows Performance Toolkits

Mit der Bewertung für den Schnellstart steht Ihnen eine einfache Möglichkeit zur Verfügung, Messungen in einem benutzerfreundlichen Bericht zu erhalten. Dazu ist allerdings eine Installation des ADK erforderlich, die einige Zeit in Anspruch nimmt. Es ist möglich, mit dem Tool Windows Performance Recorder (WPR) schnell eine Ablaufverfolgung für den Schnellstart auszuführen.

Schritt 1: Öffnen der Schnellstart-Ablaufverfolgung mit WPA

  1. Öffnen Sie Windows Performance Recorder (WPR) im Menü Start.

  2. Ändern Sie die Ablaufverfolgungskonfiguration.

    1. Wählen Sie die Anbieter Selektierung auf erster Ebene und CPU-Nutzung aus.

    2. Ändern Sie das Leistungsszenario in Schnellstart.

    3. Ändern Sie die Anzahl der Iterationen in 1, um nur eine einzelne Ablaufverfolgung auszuführen.

      Screenshot des WPR-Startmenüs

  3. Klicken Sie auf Starten.

  4. Geben Sie einen Pfad ein, unter dem die resultierende Ablaufverfolgung gespeichert werden soll, und klicken Sie auf Speichern.

    • Dadurch wird das System erzwungen, einen Neustart auszuführen, um die Ablaufverfolgung zu erfassen und zu speichern.
  5. Warten Sie nach dem Neustart des Systems 5 Minuten, bis die Ablaufverfolgung abgeschlossen ist.

Sie verfügen jetzt über eine Ablaufverfolgung, die mit Windows Performance Analyzer (WPA) analysiert werden kann.

Schritt 2: Öffnen der Schnellstart-Ablaufverfolgung mit WPA

  1. Öffnen Sie Windows Performance Analyzer (WPA) über das Menü „Start“.

  2. Öffnen Sie im Menü Datei die Ablaufverfolgung, die Sie in Schritt 1 erstellt haben.

  3. Öffnen Sie das Menü Profile, und klicken Sie auf Anwenden.

    1. Klicken Sie auf Katalog durchsuchen.

    2. Wählen Sie FastStartup.wpaprofile aus.

    3. Klicken Sie auf Öffnen.

Sie haben damit ein Visualisierungsprofil auf die Ablaufverfolgung angewandt, mit dem Sie einige häufig verwendete Graphen (CPU, Datenträger usw.) anzeigen können.

Schritt 3: Visualisieren der Aktivitätszeitachse

  1. Sehen Sie sich das Diagramm Interessensbereiche auf der Registerkarte Tiefe Analyse an.

    • Diese Ansicht bietet eine Zeitachsenübersicht über alle in Übung 1 erwähnten Unterphasen des Schnellstarts.

      Screenshot der Beispieldaten in der Zeitachsenübersicht

  2. Wenn Sie die Maus über den Balken eines Bereichs bewegen, wird ein Popupfenster mit weiteren Informationen zu diesem Bereich angezeigt.

    • Wenn Sie die Maus über den Bereich Start Hauptpfad bewegen, wird seine Dauer angezeigt. Im folgenden Beispiel dauert er 13,6 Sekunden.

      Screenshot des Popupfensters mit ausführlichen Daten zu einem Bereich

Nehmen Sie etwas Zeit, um in der Bereichsstruktur zu navigieren, und sehen Sie sich alle Unterphasen an, um sich damit vertraut zu machen.

Die Zeit, die der Explorer für das Initialisieren und Beenden benötigt, ist die Zeit, die erforderlich ist, um den Windows-Desktop zu erstellen und den Benutzer*innen anzuzeigen. Diese Phase (und alle nach dem Start – bezeichnet als Post on/off) kann von Prozessen beeinflusst werden, die beim Starten gestartet wurden.

Wählen Sie ein Intervall von 90 Sekunden am Anfang der Explorer-Initialisierung aus, und vergrößern Sie es.

Screenshot der Anzeige von Beispieldaten in WPAScreenshot der Anzeige von Beispieldaten in WPA mit Zoomfunktion

Unter dem Graph Interessenbereiche gibt es zwei weitere nützliche Graphen: CPU-Auslastung (aus Stichproben) und Datenträgerverwendung. Mit ihnen können die Auswirkungen bewertet werden, die das Vorabladen von Software auf den Ressourcenverbrauch und die Reaktionsfähigkeit während der Post On/Off-Phase hat.

Eine hohe CPU-Auslastung durch Anwendungen und Dienste kann die Benutzererfahrung beeinträchtigen, z. B. die Reaktionszeiten der Benutzeroberfläche oder durch Video- und Soundstörungen. Wenn ein einzelner Prozess die CPU zu stark beansprucht, können andere Prozesse verzögert werden, da sie um Systemressourcen konkurrieren müssen.

Wenn ein Thread Speicherressourcen verwendet, kann dies die Dauer der Aktivität erhöhen. Wenn mehrere Threads um die Nutzung des Speichers konkurrieren, führen die daraus resultierenden zufälligen Festplattensuchvorgänge zu größeren Verzögerungen.

Schritt 4: Analysieren der CPU-Auslastung des Prozesses

Um zu bewerten, wie viel CPU-Zeit von einem Prozess verbraucht wird, konzentrieren Sie sich auf den Graph CPU-Auslastung (aus Stichproben). Die Daten, die im Graph CPU-Auslastung (aus Stichproben) angezeigt werden, stellen Stichproben von CPU-Aktivitäten dar, die in regelmäßigen Abständen von 1 ms durchgeführt werden. Jede Zeile in der Tabelle stellt eine einzelne Stichprobe dar.

CPU-Aktivitäten, die zwischen Stichproben auftreten, werden bei dieser Samplingmethode nicht aufgezeichnet. Daher sind Aktivitäten von sehr kurzer Dauer wie Interrupts im Graph CPU-Auslastung (aus Stichproben) unterrepräsentiert.

Überprüfen Sie die CPU-Auslastung für jeden Prozess, um Prozesse mit hoher CPU-Auslastung zu identifizieren (Gewichtung und Gewichtung (%)). Scrollen Sie dazu nach unten zum Graph CPU-Auslastung (aus Stichproben). Sehen Sie sich auf der linken Seite die Liste der Prozesse an. Jeder aktive Prozess, der links ausgewählt ist, wird im Graph angezeigt.

Screenshot mit Beispieldaten zur CPU-Auslastung

**Tipp:**

Sie können während der Verwendung von WPA-Graphen die Ansicht ändern, um sowohl den Graph als auch die Tabelle anzuzeigen. Sie können auf die Schaltfläche Maximieren klicken, um die anderen Graphen auszublenden, die auf der Registerkarte Analyse angezeigt werden.

Screenshot der Schaltfläche „Maximieren“ in WPA

In diesem Beispiel verbraucht ImageSHELLY.exe 12,4 Sekunden CPU-Zeit über das Intervall von 90 Sekunden, das derzeit analysiert wird. Da die CPU auf diesem System zwei Kerne aufweist, stellt dies einen relativen Prozentsatz der Auslastung von 6,9 % dar.

Mithilfe dieser Informationen können Sie den Prozess untersuchen, der diese CPU-Auslastung verursacht, oder diese Details an die Entwickler*innen weiterleiten, die diesen Prozess besitzen.

Sie können zusätzliche Spalten hinzufügen, um weitere Informationen zu extrahieren (klicken Sie dazu mit der rechten Maustaste auf die Spaltenüberschriften der Tabelle):

  • Thread-ID: Bezeichner des Threads, der die CPU-Auslastung verursacht

  • Stapel: Aufrufstapel mit hervorgehobenen Codepfaden und Funktionen, die die CPU-Auslastung verursachen

Screenshot, der zeigt, wie Sie Ihren Ergebnissen weitere Spalten hinzufügen

Im obigen Beispiel verursacht ein Thread die meiste CPU-Auslastung innerhalb des Prozesses ImageSHELLY.exe: Thread 2.612 mit 10,77 Sekunden CPU-Aktivität.

Der Stapel zeigt, dass diese Aktivität aus dem Modul ImageSTACEY.dll stammt.

Schritt 5: Analysieren der Datenträgerverwendung von Prozessen

Um zu bewerten, wie viel Datenträgerbandbreite ein Prozess verbraucht, konzentrieren Sie sich auf den Graph Datenträgerverwendung.

Screenshot mit Beispieldaten in WPA

Die interessanten Spalten sind:

  • Pri: Priorität der Datenträger-E/A. Die drei möglichen Prioritätsstufen sind: normal, niedrig und sehr niedrig.

  • E/A-Typ: Typ der E/A. Die drei möglichen E/A-Typen sind: lesen, schrieben und löschen.

  • Prozess: Bezeichner des Prozesses, der die Datenträger-E/A hervorgerufen hat

  • Pfadstruktur: Struktur der Speicherorte der Dateien, auf die bei den E/A-Vorgängen zugegriffen wurde

  • Größe: E/A-Größe (in Byte)

  • Datenträgerdienstzeit: Zeit, die der Datenträger für den E/A-Vorgang benötigt hat

  • E/A-Zeit: Zeit, die der E/A-Vorgang in der Windows-E/A-Warteschlange stand.

    • E/A-Zeit ist immer länger als die Datenträgerdienstzeit, da ein E/A-Vorgang in die Warteschlange verschoben wird, wenn Datenträgerkonflikte auftreten oder wenn ein E/A-Verteiler mit einer höheren Priorität zuerst abgeschlossen werden muss.

Fügen Sie diese Spalten hinzu, und ordnen Sie sie wie in dieser Ansicht an:

Screenshot mit Beispieldaten, die nach bestimmten Spalten gefiltert sind

Post on/off berücksichtigt nur E/A-Vorgänge mit normaler Priorität. Untersuchen Sie die Informationen zu Datenträgerlesevorgängen im Zusammenhang mit diesem Prozess. Lesevorgänge auf dem Datenträger erfordern beim Start in der Regel mehr Datenträgerzugriffszeit als Schreibvorgänge, da viele Daten vom Datenträger gelesen werden müssen, um Prozesse und Dienste zu starten.

  1. Klicken Sie auf die Farbmarkierungen neben Pri: Sehr niedrig und Pri: Niedrig, sodass nur noch E/A-Vorgänge mit normaler Priorität im Graph angezeigt werden.

    Screenshot des Beispielgraph, der eine sehr geringe Datennutzung zeigt

  2. Erweitern Sie in der Tabellenansicht die Zeile für die Priorität Normal.

  3. Erweitern Sie in der Tabellenansicht die Zeilen für Schreiben, Lesen und Löschen, und klicken Sie dann auf die Kopfzeile der Spalte Größe, um den Inhalt in absteigender Reihenfolge zu sortieren.

    Ihr Bildschirm sollte nun wie folgt aussehen:

    Screenshot der Beispieldatenergebnisse in der Tabelle mit den Spalten „Pri“, „E/A-Typ“, „Prozess“, „Pfadstruktur“, „E/A-Zeit“ und „Größe“

    Für das vorherige Beispiel wird Folgendes angezeigt:

    1. Es wurden 152 MB an Daten mit normaler Priorität vom Datenträger gelesen.

    2. Es wurden 129 MB an Daten mit normaler Priorität auf den Datenträger geschrieben.

      • Die Schreibvorgänge sind größtenteils darauf zurückzuführen, dass die erfasste ETL-Ablaufverfolgungsdatei im Speicher beibehalten wird.
  4. Erweitern Sie in der Tabellenansicht die Zeile Lesen unter „E/A-Typ“.

    • Nun sollten die Prozesse angezeigt werden, die die meisten E/A-Lesevorgänge auf dem Datenträger während der Phase Post on/off verursacht haben.
  5. Ermitteln Sie die drei Prozesse, die am stärksten zu Datenträgerlesevorgängen beitragen und keine Windows-Komponenten sind.

    Screenshot der Beispieldatenergebnisse in der Tabelle mit den Spalten „Pri“, „E/A-Typ“, „Prozess“, „Pfadstruktur“, „E/A-Zeit“ und „Größe“

  6. Erweitern Sie in der Tabellenansicht die Zeile Pfadstruktur für ImageSTUART.exe, und navigieren Sie darin.

    Screenshot der Beispieldatenergebnisse in der Tabelle mit den Spalten „Prozess“, „Pfadstruktur“, „E/A-Zeit“ und „Größe“

Im vorherigen Beispiel liest ImageSTUART.exe 13,5 MB Daten vom Datenträger, wenn der Prozess während der Phase Post on/off gestartet wird. Die meisten Zugriffe erfolgen zum Lesen von DLL-Komponenten im Ordner Programme.

Mithilfe dieser Informationen können Softwareentwickler*innen ihre Komponenten und Prozesse identifizieren und ermitteln, ob die Komponentengröße reduziert werden kann oder ob der Startcodepfad optimiert werden kann, um die Menge an Daten zu minimieren, die vom Datenträger gelesen werden.

Sie können diese Daten auch verwenden, um Prozesse von Drittanbietern zu identifizieren, die beim Start gestartet werden und eine hohe Datenträgerverwendung verursachen. Wenn ein Prozess anscheinend zu Datenträgerkonflikten führt, kann er aus dem Image entfernt oder einfach nicht beim Start gestartet werden.