Bewährte Methoden für die Ein/Aus-Leistung
Plattform
Kunden- Windows Vista | Windows 7
Server- Windows Server 2008 | Windows Server 2008 R2
BESCHREIBUNG
Die Systemleistungszustände (oder S-Zustände), wie in der ACPI-Spezifikation (Advanced Computer Power Interface) definiert, werden umgangssprachlich als Ein-/Aus-Zustände bezeichnet, da der häufigste S-Zustandsübergang ein Computer ist, der ein- und ausgeschaltet wird. Die verschiedenen Ein-/Aus-Zustandsübergänge auf einem System unter Windows Vista oder Windows 7 sind Start, Ruhezustand (ACPI S3), Ruhezustand (ACPI S4) und Herunterfahren.
Eine gute Leistung während dieser Ein-/Aus-Übergänge verbessert nicht nur die wahrgenommene Qualität eines Computers, sondern wirkt sich auch stark auf die täglichen Computernutzungsmuster und die Systemsicherheit aus. Kunden können durch Systeme frustriert werden, deren Start oder Herunterfahren zu lange dauert. Mobile Systeme mit langwierigen Ruhezustands- und Ruhezustandsübergängen können die Akkulaufzeit unnötig aufgebraucht haben. Längere Abschaltzeiten können sich auch negativ auf die Zuverlässigkeit mobiler Systeme auswirken. Sie erhöhen beispielsweise das Risiko unerwarteter Stromabschaltungen.
Systemerweiterungen wie Treiber, Anwendungen und Dienste können erhebliche Auswirkungen auf die Ein-/Aus-Übergangszeiten haben. In diesem Abschnitt werden einige der bewährten Methoden erläutert, die Anwendungs- und Dienstentwickler befolgen können, um Verzögerungen beim Starten, Standby und Herunterfahren zu vermeiden und eine reaktionsfähige Benutzererfahrung nach dem Starten und fortsetzen zu gewährleisten. Weitere Informationen zum Identifizieren von On/Off-Leistungsproblemen mithilfe des Windows-Leistungstoolkits und zum Implementieren der folgenden Empfehlungen für Ihre Anwendung oder Ihren Dienst finden Sie in den Whitepapern im Abschnitt "Links zu anderen Ressourcen".
Bewährte Methoden
- Verwenden Sie das Windows Performance Toolkit, um die Leistung während aller Ein-/Aus-Übergänge zu messen.
- Führen Sie Tests kontrolliert durch, und führen Sie Vergleiche mit einer gültigen Baseline durch:
- Abrufen einer Basismessung für ein System mit möglichst wenigen Systemerweiterungen
- Hinzufügen von Anwendungen und Diensten nacheinander
- Testen auf inakzeptable Regressionen in Ein-/Aus-Übergangszeiten
- Vermeiden Sie die Verwendung von verwaltetem Code für Anwendungen im kritischen Startpfad.
- Stellen Sie sicher, dass alle Anwendungen schnell auf Benachrichtigungen zum Herunterfahren reagieren (WM_QUERYENDSESSION und WM_ENDSESSION Nachrichten).
- Reduzieren Sie Verzögerungen beim Herunterfahren von Diensten und Anwendungen, indem Sie die CPU-, Datenträger- und Netzwerkaktivität als Reaktion auf Benachrichtigungen zum Herunterfahren minimieren.
- Vermeiden Sie Verzögerungen bei der Verarbeitung der Benachrichtigung zum Anhalten (WM_POWERBROADCAST Nachricht).
- Reagieren Sie schnell auf Das Fortsetzen von Ereignissen und minimieren Sie die CPU-, Datenträger- und Netzwerkauslastung nach dem Fortsetzen.
- Reduzieren Sie den Anwendungsressourcenverbrauch nach dem Start.
- Starten Sie anwendungen nicht bei jedem Start über die RunOnce-Taste.
- Konvertieren Sie alle nicht benötigten Dienste in den Bedarfsstart oder Triggerstart, um Systemressourcen während des Startvorgangs verfügbar zu machen.
- Vermeiden Sie die Verwendung von Ladereihenfolgegruppen zum Ausdrücken von Dienstabhängigkeiten.
- Stellen Sie sicher, dass alle ausgeführten Dienste diese status so bald wie möglich während des Starts melden, um zu vermeiden, dass der Service Control Manager (SCM) blockiert wird.
- Vermeiden Sie die Verwendung von verwaltetem Code für Dienste im Startpfad.
- Lassen Sie diensten nicht zu, dass sie Benachrichtigungen vor dem Herunterfahren und Herunterfahren (SERVICE_CONTROL_PRESHUTDOWN und SERVICE_CONTROL_SHUTDOWN Kontrollcodes) erhalten, es sei denn, dies ist unbedingt erforderlich.
- Stellen Sie sicher, dass alle Dienste, die sich für den Empfang von Benachrichtigungen zum Herunterfahren entschieden haben, schnell auf das SCM reagieren.
- Vergewissern Sie sich, dass Dienste sich nicht für den Empfang von Sperrbenachrichtigungen anmelden, es sei denn, dies ist unbedingt erforderlich.
- Stellen Sie sicher, dass alle Dienste schnell auf Das Fortsetzen von Ereignissen reagieren und die CPU-, Datenträger- und Netzwerkauslastung nach dem Fortsetzen minimieren.
Links zu anderen Ressourcen
- Ein/Aus-Übergangsleistungsanalyse von Windows Vista
- Windows-Leistungsanalyse
- Dokumentation zum Windows Performance Toolkit auf MSDN
- Windows-Leistungsanalyseforum
- Ereignisablaufverfolgung für Windows auf MSDN