Verbessern der Energieeffizienz für Anwendungen

Die Entwicklung von Windows 8

Einblicke in die Arbeit des Windows-Entwicklerteams

Verbessern der Energieeffizienz für Anwendungen

  • Comments 0

Für Entwickler ist es eine erhebliche Herausforderung, den Stromverbrauch eines PCs auf ein Minimum zu senken und gleichzeitig die Reaktionsfähigkeit und Nützlichkeit zu maximieren – anders gesagt: die Rechnervorgänge schnell und "flüssig" zu machen. Dies beginnt einerseits mit unserer Arbeit an Windows, um Support für die richtige Ressourcenverwendung zu bieten, erfordert aber auch von den Entwicklern, bei der Entwicklung ihrer Apps den Ressourceneinsatz zu beachten. Energieeffizienz gilt für alle Bauarten von und Anwendungsszenarien bei Computern – ein geringerer Energieverbrauch ist für jeden die richtige Entscheidung. In diesem Bereich profitieren Windows 8-PCs von erheblichen Innovationen. Grundlage hierfür ist das neue Laufzeitmodell in WinRT. Dieses kann nicht einfach für bestehende Desktopanwendungen nachgerüstet werden, wenn dabei Funktion und Kompatibilität erhalten werden sollen. Ähnlich wie Statusmigration und Setup, die bereits in früheren Beiträgen behandelt wurden, ist der Energieverbrauch ein Bereich von Windows, den wir mit Blick auf neue Szenarien weiterentwickelt haben. Die gesamte vorhandene Unterstützung Ihres gewohnten x86-basierten PCs bleibt bestehen, und Ihre Desktop-Arbeiten können Sie wie gewohnt fortsetzen (dabei gibt es natürlich Verbesserungen, die wir bereits erwähnten). Mit der Einführung neuer Hardware im Bereich der unterstützten SoC-Hardware (System-on-Chip, Ein-Chip-System) (einschließlich von Intel) wird sich diese Energieeffizienz immer mehr durchsetzen. Wir werden zwar auch verschiedene Bemühungen erläutern, die wir bezüglich des Stromverbrauchs von Desktop-Apps unternommen haben, um Always-on-Szenarien mit ständiger Verfügbarkeit zu ermöglichen; doch wir möchten uns neuen Apps zuwenden, die für WinRT programmiert wurden und auf einer neuen Hardwaregeneration ausgeführt werden, die neue Möglichkeiten bei der Energieverwaltung bietet.

Dieser Beitrag stammt von Sharif Farag und Ben Srour, Lead Program Managers des Fundamentals- und User Experience-Teams.

– Steven


Wir haben bereits mehrere Beiträge über unsere Arbeit zur Verbesserung der Akkulaufzeit unter Windows 8 verfasst. Im Beitrag Entwickeln eines energieeffizienten und universell einsatzfähigen Windows-Systems von Pat Stemen wurden einige der Bemühungen erläutert, die wir unter Windows 8 unternehmen, um einen Smartphone-ähnlichen Energiemodus auf SoC-Hardware zu verwirklichen. Diesen Modus nennen wir "Connected Standby". In Updates von Live-Kacheln ohne den Akku zu leeren haben wir erläutert, wie Live-Kacheln umgesetzt werden, um neue und aktuelle Informationen ohne umfangreiche Hintergrundaktivitäten bereitzustellen, durch die die Akkulaufzeit verkürzt wird. In diesem Beitrag werden wir uns mit einigen bisher noch nicht erörterten Innovationen befassen, mit denen wir den Stromverbrauch von laufenden Apps auf Windows 8-PCs minimieren konnten, ohne ihre Leistungsfähigkeit zu beeinträchtigen.

Wie Pat in seinem Beitrag ausgeführt hat, kann Software den Energieverbrauch durch Ressourcennutzung beeinflussen (Ressourcen wie CPU, Datenträger, Arbeitsspeicher usw.). Denn jede dieser Ressourcen verbraucht wiederum Strom. Der Trick besteht also darin, Anwendungen die benötigten Ressourcen dann nutzen zu lassen, wenn Sie diese aktiv verwenden, den Ressourceneinsatz jedoch auf das absolute Minimum zu beschränken, wenn Sie etwas anderes tun. Dies gilt natürlich auch für das Betriebssystem. Pat hat bereits einige dieser Verbesserungen beschrieben. Tatsächlich aber gab es mehrere Hundert Verbesserungen in diesem Bereich – wir sprechen hier von „Energiehygiene“ – Verbesserungen, um Ressourcenverbrauch und -aktivität des Betriebssystems zu beschränken. Dennoch haben wir uns entschieden, nichts zu übertreiben und keine Funktionen einzuschränken, die unsere Kunden erwarten – beispielsweise das Abschließen von begonnenen Aktivitäten, nachdem der Benutzer zu anderen Aktivitäten gewechselt hat.

Frage von "@ItsMe" in Reaktion auf den Beitrag zum Thema Live-Kacheln:

"Wie ist mit Kopiervorgängen im Hintergrund? Wenn ich den Explorer in den Hintergrund verschiebe, weil ich ein Dokument in Word schreibe oder anzeige, wird der Kopiervorgang dann unterbrochen, bis ich ihn wieder in den Vollbildmodus versetze?"

Diese Frage können wir verneinen: Das Kopieren von Dateien wird selbstverständlich auch im Hintergrund fortgesetzt wie bisher – und nicht etwa unterbrochen, wenn Sie einen Kopiervorgang starten und dann etwas anderes tun, während dieser im Hintergrund beendet wird. Dies gilt unabhängig davon, ob Sie den PC verwenden, oder der PC nicht benutzt wird, bis sich der Bildschirmschoner einschaltet. Das Anhalten inaktiver Apps trifft nur für Apps im Metro-Stil zu und nicht für grundlegende Betriebssystemfunktionen, z. B. das Kopieren von Dateien.

Schwerpunkt auf den Vordergrund

Am Anfang von Windows 8 stand eine Regel, die für die große Mehrheit der Apps im Metro-Stil gilt: Wenn eine App nicht auf dem Bildschirm angezeigt wird oder der Bildschirm nicht eingeschaltet ist, sollte die Akkulaufzeit nicht beeinträchtigt werden. Dies bedeutet nicht, dass WinRT und das Benutzermodell Multitasking ausschließen. Es geht um eine neue Sichtweise, wie und wann Code die Möglichkeiten moderner Hardware, Netzwerkanforderungen, Bauarten und Zuverlässigkeit/Sicherheit/Datenschutz berücksichtigt. Es wird einige Ausnahmen geben (etwa beim Synchronisieren von E-Mails im Hintergrund oder bei Desktoptools), in den meisten Fällen kann jedoch davon ausgegangen werden, dass eine App den Großteil ihrer Arbeit dann ausführt, wenn sie aktiv verwendet wird. Wenn sich eine App nicht im Vordergrund befindet, soll sichergestellt werden, dass sie entweder vollständig angehalten wird oder mit Blick auf eine begrenzte Anzahl von Hintergrundaktivitäten, auf die sie zugreifen kann (etwa das Kopieren von Dateien), nur begrenzte Ressourcen verbraucht.

Einfach ausgedrückt bedeutet dies, dass es für eine App drei mögliche Zuständen gibt:

  1. Aktives Ausführen im Vordergrund
  2. Angehaltener Zustand im Hintergrund
  3. Ausführen festgelegter Hintergrundaktivitäten    
Aktives Ausführen im Vordergrund

Das aktive Ausführen einer App im Vordergrund ist ganz einfach: Sie wird ausgeführt und nutzt CPU-, Datenträger-, Arbeitsspeicher- und andere Ressourcen nach Bedarf. Diesbezüglich gleichen Apps im Metro-Stil also den altbekannten Windows-Anwendungen. Dies gilt sowohl für das Ausführen einer einzelnen App im Vollbildmodus als auch für das Anzeigen von zwei Apps auf dem Bildschirm, von denen eine an den Bildschirmrand „angedockt“ ist. Dies gilt nur bei eingeschaltetem Bildschirm, da dies ein Zeichen dafür ist, dass der Benutzer den PC verwendet.

Beim Entwickeln schneller und flüssiger Apps gibt es eine Menge neuer Faktoren zu berücksichtigen. Ähnlich wie beim Wechsel von zeichenbasierter zu GUI-Programmierung, deren Konzepte sich grundsätzlich voneinander unterscheiden, sind neue Ansätze erforderlich, wenn Apps entwickelt werden, die verantwortungsvoll Energie- und Ressourcen in Anspruch nehmen. Beispielsweise waren Programmierer früherer Windows-Versionen häufig vom WNDPROC-Ansatz frustriert, da sie der Ansicht waren, dass die beste Methode zur Handhabung von Tastatureingaben eine Aufzeichnung des Interrupts mit anschließender Übersetzung des Tastendrucks sei. Dies wurde durch den meldungsbasierten Ansatz umgekehrt, da Windows nun zunächst die Übersetzung behandelte, und die Anwendung darüber informierte, ob der Tastendruck von Bedeutung war oder nicht – ein vollständig unterschiedlicher Ansatz. Da derzeit mindestens 75 % der verkauften PCs mit Akkustrom betrieben werden, sind Programmierer erneut gefordert, ihre Konzepte neu zu überdenken.

Auf dieser Grundlage ist es wichtig, vorausschauend an die App-Entwicklung heranzugehen und dabei mit der Entwicklung von Hardware und Kundenwünschen Schritt zu halten bzw. diese einzuplanen. Das bestehende Anwendungsmodell musste daher weiterentwickelt werden, um die Energieeinsparungen und Akkulaufzeiten zu ermöglichen, die unsere Kunden erwarten. Wir möchten erneut darauf hinweisen, dass Ihre derzeit vorhandenen Desktopanwendungen genau so funktionieren werden, wie bereits heute unter Windows 7 – und in vielen Bereichen sogar noch verbessert wurden. Aber nach und nach wollen wir Windows dahingehend verbessern, dass Sie mehr erledigen können und dabei weniger Strom verbrauchen. Hierfür gibt es neue Anwendungen, die Sie bei Ihren Aufgaben unterstützen – von Unterhaltung bis Profitools und alles, was dazwischen liegt. Die verfügbaren Ressourcen, die erforderlichen Ressourcen und die Art der Berechnungen ändern sich im Lauf der Zeit – Windows 8 bietet neue Möglichkeiten, diese Chance zu nutzen.

Bei einem Ansatz, der sich auf die Anwendungen im Vordergrund konzentriert, entwickelt sich Parallelität zu einem wichtigen Faktor für die Entwicklung schneller, flüssiger und reaktionsfreudiger Apps. Auf der //build/-Konferenz haben wir gezeigt, wie die neuen Tools und APIs zur Entwicklung von Anwendungen verwendet werden, die in hohem Maße zur gleichzeitigen Ausführung geeignet sind. Dies erlaubt Entwicklern, anders an das Codieren von Szenarien heranzugehen. Anstatt eine eigenständige Hintergrund-App kontinuierlich auszuführen, auch wenn ein Vorgang nicht benötigt wird (dies verringert die Akkulaufzeit), können Programmierer beispielsweise die neue Hintergrundaufgaben-Infrastruktur des Betriebssystems nutzen, um erforderliche Aktivitäten im Hintergrund auf eine energieeffiziente Weise abzuschließen. Hintergrundaufgaben können auf unterschiedliche Weise aufgerufen werden, etwa durch eine Pushbenachrichtigung, ein geplantes Ereignis oder durch eingehende Daten aus dem Netzwerk. Das System ist außerdem so intelligent, dass Apps häufiger im Hintergrund ausgeführt werden können, wenn Ihr PC an eine Steckdose angeschlossen ist. Zusammengenommen bietet dies große Vorteile für die Akkulaufzeit, da Code nur dann ausgeführt wird, wenn dies erforderlich ist. Beispielsweise kann Ihre Newsreader-App nachts, wenn Ihr PC an das Stromnetz angeschlossen ist, automatisch Inhalte für Sie herunterladen, damit immer die aktuellen Inhalte zur Verfügung stehen, wenn Sie die App starten. Dies beeinflusst Ihre Arbeit nicht im Geringsten – eine neue Möglichkeit, um Aufgaben mit minimalen Auswirkungen auf wichtige Systemressourcen zu erledigen.

Zusätzlich zu den Verbesserungen bei der Codeausführung im Hintergrund haben wir auch die Tool-Infrastruktur und die WinRT-API verbessert, um das asynchrone Programmieren einfacher und leistungsstärker zu gestalten. Schnelle und reaktionsfreudige Apps werden auf der verlässlichen Grundlage der asynchronen Programmierung erstellt. In einer zentralen Veranstaltung der //build/-Konferenz präsentierte Anders Hejlsberg einen WinRT-Ansatz zur Erstellung einer asynchronen Benutzeroberfläche mit Schwerpunkt auf der Darstellung eines umfangreichen Katalogs von Elementen. Durch Einsatz solcher Techniken können großartige Szenarien und leistungsfähige Apps im Vordergrund umgesetzt werden, während gleichzeitig die Akkulaufzeit verlängert wird.

Anhalten von Apps im Hintergrund

Im zweiten Zustand wird eine App durch das Betriebssystem angehalten, wenn Sie diese gestartet haben, sie jedoch nicht mehr aktiv nutzen. Das bedeutet, dass der Windows-Planer (die Komponente, die den CPU-Zugriff für Prozesse und Threads plant) diese App bei der CPU-Planung nicht berücksichtigt. Wenn das Betriebssystem die App nicht einplant, kann diese nicht auf die CPU zugreifen – und die CPU kann in niedrigere Energiestatus wechseln. Niedrigere Energiestatus der CPU können erheblich zum Verlängern der Akkulaufzeit beitragen. Viele Entwickler kennen diesen Ansatz bereits – denn er ähnelt dem, was mit einem Prozess geschieht, wenn eine App beim Debugging "pausiert" wird. Im Wesentlichen werden alle Threads gestoppt, die für die App ausgeführt werden. Angehaltene Apps befinden sich in einer ganz ähnlichen Art von zwischengespeichertem Zustand. Da die App bereits initialisiert wurde, können Sie unmittelbar zwischen den Apps wechseln. Hierbei lässt der Planer des Betriebssystems zu, dass die Ausführung der App fortgesetzt wird, wenn diese erneut im Vordergrund aufgerufen wird.

Der große Vorteil dieses neuen Unterbrechungsstatus für Ihre Apps ist, dass Sie unmittelbar zu ihnen zurückkehren können. Wenn Sie zu einer angehaltenen App wechseln, wird diese sofort fortgesetzt. So können Sie an exakt der gleichen Stelle weiterarbeiten, an der Sie zuvor aufgehört haben. Sie können also schneller zwischen einer größeren Anzahl von Apps wechseln, als dies unter Windows jemals zuvor möglich war. Sie müssen sich nicht mehr darum kümmern, wie viele Apps auf Ihrem PC ausgeführt werden – mithilfe der Live-Kacheln, die Sie über das aktuelle Geschehen in Ihren Apps informieren, und der Möglichkeit, dass Apps ihren Zustand speichern und wiederherstellen, wirken die Apps fast so, als ob sie ständig ausgeführt werden.

Nehmen wir beispielsweise an, Sie verwenden eine App, die Ihre anstehenden Flugreisen verwaltet. Diese App kann Ihnen den Status Ihres nächsten Flugs durch eine Benachrichtigung auf einer Live-Kachel anzeigen, selbst wenn die App angehalten wurde oder selbst dann, wenn sie nicht im Hintergrund ausgeführt wird. Wenn Sie zu dieser App wechseln, kann diese an der letzten Position innerhalb der App geöffnet werden (z. B. bei einer Flugsuche). Ganz so, als ob Sie die App niemals verlassen hätten. Da eine "laufende Anwendung" ein eher abstrakter Begriff ist, haben wir den Start einer App und das Wechseln zu einer App im Wesentlichen gleichgesetzt. Ob Sie nun mithilfe des Back-Stapels, ALT+TAB oder dem Startbildschirm zu einer App wechseln: Sie können unmittelbar zu einer angehaltenen Anwendung wechseln.

Auf diese Weise entspricht die Liste der "laufenden" Programme in der Praxis exakt der Liste der Programme, die Sie auf dem Startbildschirm sehen. (Nutzer einer Tastatur sollten im Hinterkopf behalten, dass ALT+TAB für alle ausgeführten Programme auf die gleiche Weise funktioniert wie unter Windows 7. Das Gleiche gilt für die Taskleiste für Desktopanwendungen; diese wurde für Szenarien mit mehreren Monitoren sogar noch verbessert.

Der Vorteil, Apps anhalten zu können, liegt in der Möglichkeit des raschen Wechsels zwischen den Apps, ohne die Batterielaufzeit oder die Systemleistung zu beeinträchtigen. Dies ist ein wesentlicher Unterschied zu herkömmlichen Desktop-Apps, bei denen sich jeder daran gewöhnt hatte, seinen Workflow zu optimieren, wenn eine App lange zum Starten benötigt.

Grundsätzlich gibt es zwei Fälle, in denen eine App nicht angehalten wird, wenn sie keine Hintergrundaktivitäten ausführt. Erstens: Wenn Sie die App in Ihrer aktuell angemeldeten Sitzung noch nicht aufgerufen haben, müssen Sie auf die Kachel der App tippen, um diese zu starten. Der zweite Fall ist jedoch interessanter. Es kann vorkommen, dass das System die App aus dem angehaltenen Zustand entfernt und beendet, wenn der verfügbare Arbeitsspeicher knapp wird. Arbeitsspeicher ist eine begrenzte Ressource. Deshalb möchten wir, dass Ihnen die am häufigsten verwendeten Apps unmittelbar zur Verfügung stehen. Wenn Sie eine App eine Zeit lang nicht verwendet haben und das Betriebssystem mehr Arbeitsspeicher benötigt, wird eine der angehaltenen Apps beendet. Dies sollte relativ selten geschehen, da der Speicher-Manager angehaltene Apps auf der Festplatte speichert (auf der im Allgemeinen deutlich mehr Kapazität zur Verfügung steht, als im physischen Speicher). Wenn Sie wieder zu diesen Apps wechseln, stehen diese umgehend zur Verfügung. Allerdings können Situationen auftreten, in denen das System angehaltene Apps beenden muss. Dies ist üblicherweise dann der Fall, wenn mehrere Benutzer an einem PC angemeldet sind oder wenn Sie viele speicherintensive Apps verwenden.

Das Betriebssystem berücksichtigt verschiedene Faktoren bei der Entscheidung, welche Anwendungen beendet werden müssen, z. B. die letzte Verwendung der App und deren Nutzungsintensität des Arbeitsspeichers. Im Idealfall beendet das Betriebssystem so wenig Apps wie möglich, damit Sie so oft wie möglich zu angehaltenen Apps wechseln können. Auch wenn es vorkommen kann, dass eine App aus dem angehaltenen Zustand beendet wird, hat dies nur äußerst geringe Auswirkungen auf die Benutzerfreundlichkeit. Denn dank der Weiterentwicklung des App-Modells können Entwickler den Status auf einfache Weise inkrementell speichern, wenn die App verwendet wird, und diesen Zustand bei einem erneuten Start der Anwendung wiederherstellen. Beispiel: Ihre App für Flugreisen hat sich "gemerkt", dass Sie zuletzt die Seite zur Suche nach Flügen aufgerufen haben, bevor Sie zu einer anderen App gewechselt sind. Nun kann die App diese Informationen dazu verwenden, diese Seite wieder aufzurufen, wenn Sie erneut zur App wechseln – selbst wenn diese App zuvor beendet werden musste.

Hierbei ist zu unterstreichen, dass dies keine negativen Auswirkungen auf die Leistung oder Akkulaufzeit Ihres PCs hat, selbst wenn mehrere angehaltene Apps im Hintergrund ausgeführt werden und Arbeitsspeicher belegen. Tatsächlich wird es grundsätzlich nicht mehr nötig sein, Apps direkt zu verwalten oder zu schließen. Dies ist ein verbreiteter Ansatz, der aktuell bei den unterschiedlichsten Geräten verfolgt wird und eine moderne Sichtweise des Betriebssystemdesigns darstellt (siehe hierzu etwa diesen Blogbeitrag zu Multitasking in iOS von Frasier Spears).

Selbst wenn Sie keine Apps mehr schließen müssen, um die Systemleistung zu verbessern oder die Akkulaufzeit zu verlängern, steht ihnen diese Möglichkeit in der kommenden Betaversion von Windows 8 selbstverständlich zur Verfügung. Von Zeit zu Zeit kann es vorkommen, dass eine App in einen ungültigen Status wechselt oder Sie eine Aufgabe abgeschlossen haben und die App einfach nicht mehr benötigen. Sie können eine App mithilfe der Maus, einer Fingereingabeaktion oder einer Tastenkombination schließen. Wir werden einen Nachfolgebeitrag zu einigen der hier vorgenommenen Änderungen veröffentlichen, wenn die Betaversion erscheint – bleiben Sie also dabei!

Im Build der Developer Preview können Sie den angehaltenen Zustand in Aktion sehen, wenn Sie den neuen Task-Manager öffnen, nachdem Sie einige der in diesem Build enthaltenen Apps geöffnet haben, z. B. die Börsen-, News- oder Wetter-App. Beachten Sie, dass die CPU-Auslastung mit 0 % angegeben ist, obwohl sich die Apps im Arbeitsspeicher befinden. Diese "schlafen" sozusagen und beeinflussen daher weder Akkulaufzeit noch Leistung negativ.

Anzeige von Apps im Metro-Stil im Task-Manager, einige Apps zeigen den Status: [Suspended] (Angehalten) bei 0 % CPU-Auslastung

Apps im Metro-Stil werden im Hintergrund angehalten.

Ausführen von Hintergrundaktivitäten

Wie bereits erörtert, müssen sich Entwickler mit der Frage beschäftigen, wie Aufgaben, die zuvor im Hintergrund ausgeführt wurden, abgeschlossen werden können, ohne die Akkulaufzeit zu beeinträchtigen. Jetzt könnte man leicht nach Multitasking rufen und diese Funktion einfach aktivieren. Der Nachteil ist jedoch, dass es unmöglich ist, lange (oder auch nur verbesserte) Akkulaufzeiten zu erreichen, wenn sämtliche Apps Aufgaben im Hintergrund ausführen. In der mobilen und permanent vernetzten Welt der Laptops ist dies jedoch unglaublich wichtig. Mit Windows 8 und WinRT wurden deshalb neue APIs entwickelt, um die Hintergrundverarbeitung für Apps im Metro-Stil abzudecken.

Lassen Sie uns erneut darauf hinweisen, dass Ihre Desktop-Apps auf gewohnte Weise ausgeführt werden. Daher beeinflussen sie jedoch auch die Akkulaufzeit auf gewohnte Weise (auch wenn es hier einige Verbesserungen gibt, auf die wir im Folgenden eingehen werden).

Wir möchten eine Balance zwischen den vielfältigen Funktionen von Apps und dem Multitasking schaffen, die die Benutzer von Windows erwarten, und gleichzeitig eine sparsame Ressourcenverwendung verwirklichen. Hierfür wurde zunächst eine Liste mit Schlüsselszenarien erstellt, die wir ermöglichen wollten. Anschließend wurde jedes einzelne Szenario auf die ressourcenschonendste Weise umgesetzt. So konnten wir eine Reihe von Hintergrund-APIs zum Multitasking entwickeln, mit deren Hilfe Apps auf ressourcen- und energieeffiziente Weise Aufgaben im Hintergrund abschließen können. Dies bedeutet, dass sich Anwendungsentwickler auf ihr eigentliches Ziel konzentrieren können, ohne sich mit zusätzlichen Aufgaben befassen zu müssen.

Unser Ansatz orientierte sich an verschiedenen Szenarien, um das Ausführen der häufigsten Aufgaben von Apps im Hintergrund zu ermöglichen. Folgende Aufgaben können in WinRT von Apps im Metro-Stil im Hintergrund ausgeführt werden:

  • Wiedergeben von Musik
  • Herunterladen einer Datei von oder Hochladen einer Datei auf eine Website
  • Aktualisieren von Live-Kacheln mit aktuellen Inhalten
  • Drucken
  • Empfangen von VoIP-Anrufen
  • Empfangen einer Sofortnachricht
  • Empfangen einer E-Mail
  • Freigeben von Inhalten (z. B. Hochladen von Fotos auf Facebook)
  • Synchronisieren von Inhalten mit verbundenen Geräten (z. B. Synchronisieren von Fotos)

Diese Szenarien basieren auf häufigen verbreiteten Mustern, die aktuell von Entwicklern benutzt werden oder die wir in Zukunft erwarten. Einige dieser Szenarien verwenden im Endeffekt die gleichen Plattformentwürfe – wir werden sie deshalb der Reihe nach behandeln, damit Sie die Umgebung und Leistungsfähigkeit von Windows 8 verstehen:

Szenario

Beschreibung

Download/Upload im Hintergrund

Der Zugriff auf und das Speichern von Inhalten im Internet ist ein sehr verbreitetes Szenario für Apps. Deshalb ist unser Ziel, dass die aktuellen Inhalte bereits heruntergeladen wurden, wenn Sie zurück zu Ihrer App wechseln. Dies ist besonders für Zeitschriften- oder Nachrichten-Apps hilfreich. Apps können die neue Hintergrundübertragungs-API verwenden, um Uploads oder Downloads im Hintergrund auszuführen. Wir bezeichnen diese API als "fully brokered" (vollständig vermittelt); dies bedeutet, dass der Upload oder Download vom Betriebssystem selbst durchgeführt wird. So wird der App-Code vom Betriebssystem ausgeführt und die Akkulaufzeit maximiert.

Audio im Hintergrund

Natürlich sollen Sie auch weiterhin in der Lage sein, mehrere Aktivitäten gleichzeitig auszuführen – besonders, wenn es sich bei einer Aktivität um das Wiedergeben von Musik handelt. Jede Medien- oder Kommunikations-App kann Audioinhalte im Hintergrund wiedergeben. Um die Effizienz zu maximieren, halten wir die App an, wenn Sie die Audiowiedergabe unterbrechen.

Freigabe

Wenn Ihre App dabei ist, Inhalte mithilfe des Knopfs "Teilen" an einen Clouddienst zu senden, kann dieser Vorgang im Hintergrund abgeschlossen werden.

Sperrbildschirm-Apps

Sperrbildschirm-Apps zeigen üblicherweise wichtige aktuelle Informationen an – diese Benachrichtigungen können jederzeit erforderlich sein, auch wenn Sie eine App gerade nicht verwenden. Die geläufigsten Beispiele hierfür sind E-Mail-, VoIP-, und Sofortnachrichten-Apps. Sperrbildschirm-Apps können auch dann Benachrichtigungen auslösen und Daten synchronisieren, wenn sie sich im Hintergrund befinden, das Gerät über den Akku betrieben wird oder der Bildschirm gesperrt ist.

Drucken

Sie können Dokumente auch dann drucken, wenn die entsprechende App in den Hintergrund verschoben wurde.

Gerätesynchronisierung

Sie können Inhalte zwischen einem angeschlossenen Gerät (z. B. eine Kamera) und Ihrem PC auch dann synchronisieren, wenn die App nicht auf dem Bildschirm sichtbar ist.

Live-Kacheln mit Windows-Benachrichtigungsdienst

Apps können durch Senden von Pushbenachrichtigungen an ihren Windows 8-PC den Eindruck vermitteln, dass sie permanent ausgeführt werden (selbst wenn sie angehalten wurden). So können stets aktuelle Inhalte auf der Live-Kachel der App angezeigt werden.

Geplante Benachrichtigungen

Apps können Sie zu einem bestimmten Zeitpunkt über Ereignisse informieren, indem entweder die Kachel zu diesem Zeitpunkt aktualisiert wird (z. B. bei Terminen im Kalender) oder indem eine Benachrichtigung auf dem Desktop angezeigt wird, die Sie z. B. an eine Aufgabe erinnert, bevor Sie das Büro verlassen. Diese Ereignisse werden durch die App geplant, allerdings ist Windows für die Zustellung der Benachrichtigung zuständig, wodurch der Akku nur minimal belastet wird.

Hintergrundaufgaben

Apps können Code ausführen, wenn bestimmte Ereignisse auftreten, z. B. wenn ein regelmäßiges Ereignis eintritt oder Sie sich bei Windows oder einem Sofortnachrichtendienst anmelden. Sperrbildschirm-Apps können alle 15 Minuten Code ausführen; andere Apps müssen registriert werden, damit sie alle 15 Minuten Code ausführen können – allerdings nur dann, wenn das Gerät an die Stromversorgung angeschlossen ist.

Computer mit Connected Standby- und Standbymodus

Bei Veröffentlichung von Windows 8 wird es ein bisher unerreichtes Angebot an verschiedenen PCs geben. Bei vielen dieser Geräte werden ähnliche Energieoptionen zur Verfügung stehen, wie bei aktuellen Windows 7-PCs. Neben dem vollständigen Ausschalten wird es auch einen "Standby"-Zustand geben – entweder, wenn dieser aktiv ausgewählt wird oder nach einer Zeit der Inaktivität. Während des Standbymodus werden alle Systemaktivitäten angehalten.

Energieverbrauch, zwischen 0 und 60 s: Bildschirm ein; zwischen 60 und 120 s: Bildschirm abgeblendet; zwischen 120 und 180 s: Bildschirm aus; zwischen 180 und 240 s: Standbymodus (S3) Desktop-Apps werden noch 180 Sekunden lang ausgeführt und angehalten, wenn der PC in den Standbymodus wechselt. Apps im Metro-Stil werden 180 Sekunden lang vom Betriebssystem verwaltet und angehalten, wenn der PC in den Standbymodus wechselt.

Anwendungsausführung auf PCs mit Standbymodus (Standardeinstellungen)

Im Diagramm oben ist dargestellt, wie Desktop-Apps (so wie in früheren Windows-Versionen) weiter ausgeführt werden, wenn sich der PC vor dem Standbymodus im Leerlauf befindet. Apps im Metro-Stil werden dagegen im zuvor beschriebenen verwalteten Modus ausgeführt. Wenn der PC in den Standbymodus wechselt, werden sowohl Apps im Metro-Stil als auch Desktop-Apps komplett angehalten. Dies verlängert die Akkulaufzeit erheblich: Im Standbymodus verbraucht der Computer nur sehr wenig Energie. Allerdings wirkt es sich nachteilig auf die Aktualität der Daten aus. Denn im Standbymodus werden keine Aktualisierungen für die Live-Kacheln abgerufen, keine neuen E-Mails heruntergeladen und keine Alarme oder andere Benachrichtigungen angezeigt.

Pat hat in seinem Beitrag bereits beschrieben, dass wir einen neuen Smartphone-ähnlichen Energiemodus für neue PCs entwickelt haben, die nur selten vollständig ausgeschaltet werden. Diese PCs basieren üblicherweise auf einer SoC-Architektur, und sind deshalb so interessant, weil sie sich während einer Inaktivitätsphase nicht vollständig abschalten sondern in einen sehr niedrigen Energiestatus versetzen. Dieser neue Status wird als "Connected Standby" bezeichnet. So werden einige hervorragende Szenarien ermöglicht, in denen etwa E-Mails, Sofortnachrichten oder Anrufe empfangen werden können, während gleichzeitig die Akkulaufzeit maximal verlängert wird. Im folgenden Diagramm ist das Verhalten für Desktop-Apps und Apps im Metro-Stil während des Connected Standby-Modus dargestellt. Damit dies jedoch wirklich effektiv funktioniert, mussten wir sowohl Apps im Metro-Stil (die, wie zuvor beschrieben, sehr sparsam mit Systemressourcen umgehen) als auch Desktopanwendungen berücksichtigen. Diese stellten uns vor erheblich größere Herausforderungen, da sie über Jahre entweder für Szenarien mit Vollzugriff auf Systemressourcen (gleichgültig, ob diese im Vordergrund oder Hintergrund ausgeführt werden) oder ohne jeden Zugriff (wenn sich der PC im Standbymodus befindet) entwickelt wurden.

Energieverbrauch, zwischen 0 und 60 s: Bildschirm ein; zwischen 60 und 120 s: Bildschirm abgeblendet; zwischen 120 und 180 s: Bildschirm aus; zwischen 180 und 240 s: Connected Standby. Desktop-Apps werden noch 180 Sekunden lang ausgeführt und angehalten, wenn der PC in den Connected Standby-Modus wechselt. Apps im Metro-Stil werden immer vom Betriebssystem verwaltet, auch wenn der PC in den Connected Standby-Modus wechselt.

Anwendungsausführung auf PCs mit Connected Standby-Modus

Um dieses Ziel zu erreichen, haben wir eine neue Komponente zu Windows 8 hinzugefügt, den "Desktop Activity Moderator", der nur auf neuen Plattformen ausgeführt wird, die Connected Standby-fähig sind. Diese Komponente soll die Ressourcenverwendung von Desktop-Apps verringern, wenn das Gerät in den Connected Standby-Modus wechselt. Wenn wir zugelassen hätten, dass Apps ohne eine Prüfung in diesem Modus mit niedrigem Energieverbrauch ausgeführt werden können, würde der PC die Akkukapazität schneller verbrauchen. Stattdessen werden Desktopanwendungen angehalten, ihre Ressourcenverwendung somit unterbrochen und die Akkulaufzeit maximiert. Aus Anwendungssicht wirkt sich dies so aus, als befände sich der Computer im Standbymodus. Wird der PC aus dem Connected Standby-Modus hochgefahren, wird die App fortgesetzt, als würde der PC aus dem Standbymodus hochgefahren.

Allerdings gibt es verschiedene Systemkomponenten, die für den Connected Standby-Modus erforderlich sind und daher nicht angehalten werden können. Hierzu zählen etwa Treiber, verschiedene Dienste für den Posteingang oder Software von Drittanbietern und natürlich die Apps im Metro-Stil, die auf die zuvor erwähnten Hintergrundfunktionen zugreifen. Viele dieser Dienste sind für bestimmte Funktionen erforderlich, z. B. für Reaktionen auf Benutzereingaben, wenn Sie zum Gerät zurückkehren, oder Netzwerkfunktionen. Diese Dienste werden erst nach sorgfältiger Prüfung für den Connected Standby-Modus zugelassen, um sicherzustellen, dass sie keine schwerwiegenden Auswirkungen auf die Akkulaufzeit haben. Außerdem gibt es verschiedene Prozesse, die für bestimmte Systemaktivitäten erforderlich sind. Diese Prozesse werden so gedrosselt, dass sie nur für einen kurzen Moment ausgeführt werden, bis eine Hintergrundaktivität ausgelöst wird, ab diesem Zeitpunkt können sie ungehindert ausgeführt werden. Ein gutes Beispiel hierfür ist ein Antivirenprogramm, das häufig Scanvorgänge als Reaktion auf Systemaktivitäten ausführt. Wenn Hintergrundaktivitäten ausgeführt werden, z. B. eine E-Mail-Nachricht im Hintergrund empfangen wird, kann die Antivirensoftware in diesem Zeitraum ungehindert ausgeführt werden. Da die meiste Zeit jedoch keine eingehende Netzwerkaktivität auftritt, ist die Aktivität auf dem System sehr gering. Deshalb werden diese Komponenten gedrosselt, um ihren Einfluss auf die Akkulaufzeit möglichst gering zu halten.

Zusammenfassung

Wie Sie sehen, haben wir erhebliche Anstrengungen unternommen, um die Akkulaufzeit unter Windows 8 zu optimieren. Es wurde ein neues Anwendungsmodell entwickelt, um merklich längere Akkulaufzeiten zu ermöglichen, während das System trotzdem "online" ist. Anwendungen, die für Windows 7 entwickelt wurden, funktionieren auch weiterhin wie gewohnt. Neue Apps im Metro-Stil können so entwickelt werden, dass sie trotz bestehender Internetverbindung energieeffizient arbeiten, indem sie die Hintergrundinfrastruktur nutzen, die das Betriebssystem bereitstellt.

– Sharif Farag und Ben Srour

  • Loading...
Leave a Comment
  • Please add 6 and 1 and type the answer here:
  • Post