Dauer des Anhaltens von Prozessen

Am besten geeignet für: Anwendungsentwickler

Relevante Bewertungen:

  • Startleistung (schneller Start)
  • Standby-Leistung
  • Leistung des Ruhezustands

Diese Metrik misst die Zeit, die der Computer damit verbringt, Prozesse über die bevorstehende Änderung des Energiezustands zu benachrichtigen.

In dieser Phase sendet das Client/Server Runtime Server Subsystem (Csrss.exe) WM_POWERBROADCAST-Fenstermeldungen zusammen mit dem Ereignistyp PBT_APMSUSPEND an jede Anwendung, die ein Fenster besitzt. Das System kann auch den Monitor ausschalten.

Diese Aktivität kann im WPA-Aktivitätsdiagramm als große Lücke zwischen aufeinanderfolgenden Prozessen, die ausgesetzt werden, gesehen werden. Zum Ausschalten des Monitors wird eine Sekunde oder mehr erwartet. Dies ist eine erforderliche Phase während des Anhaltens/Herunterfahrens und sollte nicht als Leistungsengpass für diese Metrik betrachtet werden.

Sehen Sie sich das Diagramm CPU-Auslastung (abgetastet) während dieser Zeit an, um die CPU-Auslastung im csrss.exe-Prozess auf dem folgenden Stapel anzuzeigen:

[Root] (csrss.exe) 
winsrv.dll!RegisterForDeviceBroadcastNotifications 
|- winsrv.dll!ZwUserCallNoParam 
|    win32k.sys!xxxUserPowerStateCalloutWorker 
|    |- win32k.sys!PowerOffMonitor 
|    |    |- win32k.sys!FadeDesktop 
|    |    |- win32k.sys!DrvSetMonitorPowerState 
|    |    |- win32k.sys!UpdateDisplayState 
|    |    |- win32k.sys!DwmSyncClearSwapChain 
|    |    |- win32k.sys!RestoreGammaRamp

Lücken in Suspend-Prozessen aufgrund von CPU-Auslastung auf anderen Stapeln oder Verzögerungen ohne CPU-Auslastung auf dem aktuellen Stapel können Bereiche nahelegen, die weiter untersucht werden sollten.

Wenn die Metrik erweitert wird, wird eine detailliertere Phasenansicht mit einer Reihe von Teilmetriken angezeigt, die die Zeiten messen, die jeder Prozess benötigt, um auf Benachrichtigungen zum Anhalten zu reagieren. Die Spalten enthalten folgende Informationen:

  • Eine PID nach Iteration in der Spalte Detail. In der Standardansicht kann diese Spalte den Wert „Verschiedene“ enthalten, da PIDs nicht über Iterationen aggregiert werden können. Erweitern Sie Iterationen, um einzelne PIDs anzuzeigen.

  • Die Zeit, die dieser bestimmte Prozess in dieser Phase benötigt hat.

Hinweis

Wenn eine Anwendung über mehrere Fenster verfügt, kann derselbe Prozess mehrere Benachrichtigungen erhalten.

Typische Einflussfaktoren

Jede Anwendung kann das Herunterfahren des Systems verzögern, indem ihre Antwort auf die WM_POWERBROADCAST-Nachricht mit dem Ereignistyp PBT_APMSUSPEND verzögert wird. Da diese Metrik die Gesamtzeit erfasst, die alle Windows-GUI-Prozesse benötigen, um auf die angehaltene Benachrichtigung zu reagieren, kann diese Metrik zusätzlich zu einer Gesamtzeit aller Prozessantworten durch einen einzelnen Prozess beeinträchtigt werden, der zu lange dauert. Beachten Sie, dass der Prozess ausgeführt werden muss, um diese Metrik zu beeinflussen. Da die Bewertung der Startleistung (schneller Start) neu gestartet wird, bevor Daten für die Analyse gesammelt werden, stammen diese Prozesse fast ausschließlich von Startanwendungen oder geplanten Aufgaben.

Analyse und Korrekturschritte

Identifizieren Sie die Prozesse, die sich am stärksten auf diese Metrik auswirken. Erweitern Sie in der Windows-Bewertungskonsole die Metrik Dauer des Anhaltens von Prozessen, um die Details für diese Phase abzurufen. Sortieren Sie in der Prozessliste für diese Phase die Dauer in absteigender Reihenfolge und suchen Sie nach den größten Beiträgen.

Entfernen Sie Anwendungen nach Möglichkeit aus dem Startpfad. Als bewährte Methode sollten Startanwendungen auf ein Minimum beschränkt werden. Wenn eine nicht erforderliche Anwendung Verzögerungen verursacht, sollten Sie sie aus der Liste der Startanwendungen entfernen.

Troubleshooting und Behebung von Problemen, die sich erheblich auf den Startpfad auswirken, erfordert eine gründliche Analyse der Anwendungsverzögerungen. Unter Bewährte Methoden für zeitkritische Aufgaben im Thema Ergebnisse für die On/Off-Bewertungen finden Sie eine Liste allgemeiner bewährter Methoden.

Weitere Informationen

MSDN: PBT_APMSUSPEND-Ereignis