Ressourcen schonen mit Windows 7 Peter.Kirchner@Microsoft.com blogs.msdn.com/pkirchner
Windows 7 Features in.net Windows API Code Pack notwendig Download über MSDN http://archive.msdn.microsoft.com/windowsapicodepack Offiziell ein Beispielprojekt samt Quellcode Daher kein Support. Forum ist allerdings vorhanden.
POWERMANAGEMENT
Bedeutung von Power-Management Energiekonsum ist exponentiell angestiegen über die Zeit. Software hat bedeutenden Einfluss auf die Lebensdauer der Batterie. Ziele: Ganztages-Laufzeit Reduzierung der Kosten für Energie Einhaltung von Richtlinien für Umweltschutz
Ereignisse beim Power-Management Power-Management unter Windows Vista / 7 Windows API Code Pack enthält Klasse PowerManager für Zugriff auf Windows APIs Energieänderungen erkennen Energiequellen erkennen Status der Batterie
Power-Management DEMO
CPU Power sparen - Animationen Animationen benötigen CPU und GPU Animationen im Leerlauf vermeiden Ebenfalls im System Tray Animationen abschalten, wenn Energiesparplan ausgewählt System mit Batterie läuft
HD Power sparen Standard-HDs benötigen ca. 8% der Energie Regelmäßigen HD-Zugriff im Leerlauf vermeiden Zugriffe auf die Registrierung im Leerlauf vermeiden Registrierungszugriff HD-Zugriff
Power-Management beeinflussen Anwendungen können automatisches Sleep verzögern Z.B. beim Herunterladen einer Datei, TV-Aufnahme, CD brennen etc. SetThreadExecutionState Welche Anwendungen stellen Anfragen? powercfg.exe /requests
NETZWERKMANAGEMENT
Auf Netzwerkänderungen reagieren Ist das System verbunden? Mit dem Netzwerk? Mit dem Internet? Einstufung des Netzwerks Privat Öffentlich
Netzwerk-API Zugriff über Windows API Code Pack Erhalten der Netzwerke: NetworkListManager.GetNetworks( NetworkConnectivityLevels.All) Verbindungsstatus: network.isconnected network.isconnectedtointernet
Netzwerkmanagement DEMO
HINTERGRUNDDIENSTE
Wirkung von Hintergrundaktivitäten Leistung Antwortgeschwindigkeit Ressourcen Booten, Herunterfahren, Abmelden etc. Stabilität Speicherlecks Systemabstürze Abstürze durch abhängige Anwendungen Sicherheit Größere Angriffsfläche Systemprivilegien Erfolgreicher Angriff kann gesamtes System ausliefern Energie Festplatten- und CPU- Zugriffe Verringert Akkuleistung
Startvarianten von Diensten Vor Windows Vista Auto-Start Dienst ist immer da Gestartet während der Boot-Phase Demand-Start Dienst muss programmatisch gestartet werden Probleme? Auto-Start verlängert Boot-Phase und Herunterfahren, immer Ressourcenverbrauch Demand-Start muss aufwändig implementiert werden
Dienste mit Delayed Auto-Start Ab Windows Vista System wartet mit dem Start der Dienste Ungefähr 2 Minuten Startet ServiceMain mit niedriger Priorität Ergebnisse: Verbessert Boot- und Anmelde-Phase Geeignet für nicht-kritische Dienste z.b. Windows Update
Dienste mit Trigger-Start Ab Windows 7 Dienste sollten nur laufen, wenn sie etwas zu erledigen haben Netzwerkdienste ohne Konnektivität Dienste für USB-Geräte in Abwesenheit dieser Geräte Dateitransferdienste, wenn Firewall-Ports geschlosen sind Dienste mit Trigger-Start werden gestartet, wenn sie gebraucht werden Selbst verantwortlich fürs Beenden, wenn fertig oder im Leerlauf
Dienste mit Trigger-Start Ab Windows 7 Verfügbare Auslöser (Trigger): Ankunft eines Gerätes Betreten oder Verlassen einer Domäne Firewall-Port geöffnet oder geschlossen Änderung der Gruppenrichtlinien Erste IP-Adresse verfügbar Eigene Windows Event Log-Ereignisse
Konfiguration Mit sc qtriggerinfo <servicename> Programmatisch mit ChangeServiceConfig2 vom Service Control Manager (SCM) Demo-Code
Vielen Dank für Ihre Aufmerksamkeit Peter.Kirchner@Microsoft.com blogs.msdn.com/pkirchner