Windows 7 – Erläuterungen zum Thema Systemleistung

Zum Thema der Leistung von Windows habe ich viele Kommentare und E-Mails erhalten. Es ist ein umfassender Dialog—die Leute möchten (natürlich) eine Verbesserung der Leistung. Wie viele andere Themen, die wir diskutieren werden, beinhaltet dieses Thema, auch wenn es sich hier um eine noch so absolute und messbare Größe zu handeln scheint, eine ganze Reihe von Fragen. Bei dem Ziel, eine Leistung zu erreichen, die sämtlichen Anforderungen gerecht wird, gilt es, viele verschiedene Elemente und notwendige Kompromisse im Auge zu behalten. Wir sind uns bewusst, dass die Leute, selbst wenn wir alle Erwartungen erfüllen, stets mehr von ihrem Windows-PC verlangen (was auch verständlich ist). Aus diesem Grund werden wir uns dieser Aufgabe mit Windows 7 (und IE 8) erneut stellen. Dies ist eine übergreifende Initiative, an der sämtliche Feature-Teams beteiligt sind, und stellt die zentrale Aufgabe eines unserer Feature-Teams (des Fundamentals-Teams) dar. In diesem Beitrag möchte ich den Rahmen für die Diskussion festlegen, damit wir in den folgenden Beiträgen näher auf dieses Thema eingehen können.  In diesem Zusammenhang mögen der Beitrag IE8 Performance sowie der Artikel über den Beta 2 Release von IE 8 von Interesse sein.

Der Begriff „Leistung“ umfasst mehrere Elemente. Er kann sich auf die Geschwindigkeit beziehen, mit der eine bestimmte Anforderung bearbeitet wird. Mit „Leistung“ kann auch gemeint sein, wie viel RAM normalerweise erforderlich ist, oder was für eine CPU die Benutzer benötigen. Es könnte auch die tatsächliche Zeit gemeint sein, die für das Starten eines Programms, den Neustart oder für Standby/Wiederaufnahme erforderlich ist. Man kann die Leistung auch auf die CPU-Aktivität oder Datenträger-Eingabe/Ausgabe-Aktivität (oder ausbleibende Datenträgeraktivität) beziehen. Es kann sogar die Lebensdauer der Batterie damit gemeint sein. Mitunter bedeutet Leistung auch so etwas Banales wie der standardmäßig benötigte Speicherbedarf nach der Installation. All dies sind Maßstäbe für die Messung der Leistung, und sie alle werden im Verlauf der Entwicklung systematisch festgehalten. Mit Hilfe einer ganzen Reihe von Szenarien (davon gibt es Tausende) messen wir die Leistung, und unsere Developer führen unterschiedliche Szenarien aus, je nachdem, ob ihre Analyse mehr in die Tiefe oder in die Breite gehen soll. Im Folgenden sind einige der metrischen Analysen aufgeführt, auf die die uns wir bei der Arbeit an Windows 7 konzentrieren:

  • Speicherbedarf – Wie viel Speicherbedarf wird bei der Ausführung eines bestimmten Szenarios in Anspruch genommen? Wie Sie wissen, ist man im Bereich Informatik gezwungen, einen Kompromiss zwischen Zeitersparnis und Speicherkapazität zu finden, und auch für uns gilt da keine Ausnahme. Wir begegnen diesem Kompromiss recht häufig in Zusammenhang mit Zwischenspeichern, wo wir mehr Speicherkapazität in Anspruch nehmen, um die Leistung zu verbessern oder die Wiederholung eines Rechenvorgangs zu vermeiden.
  • CPU-Auslastung – Es ist klar, dass die modernen Mikroprozessoren eine enorme Rechenleistung darstellen, und mit dem Erscheinen von Mehrfach-CPUs bietet sich mehr Gelegenheit für parallel geschaltete Vorgänge als je zuvor. Diese Ressourcen haben freilich ihren Preis. Daher messen wir die CPU-Auslastung mit Hilfe von Vergleichstests. Im Allgemeinen geht es darum, die CPU-Auslastung so gering wie möglich zu halten, da dies die Leistung bei der gleichzeitigen Benutzung eines Computers durch mehrere Benutzer verbessert und den Stromverbrauch reduziert.
  • Datenträger-Eingabe/Ausgabe – Während sich die Leistung der Festplatten auf bedeutende Weise verbessert hat, müssen wir noch immer alles dafür tun, um die Lese- und Schreibvorgänge (und natürlich das Auslagern) in Windows zu reduzieren. Aufgrund der neuen Solid State Disks, die entschieden andere Eigenschaften besitzen, müssen wir diesem Bereich in Windows 7 besondere Aufmerksamkeit widmen.
  • Starten, Herunterfahren, Standby/Wiederaufnahme – Diese Vorgänge sind bei unserer Arbeit an Windows 7 von zentraler Bedeutung. Wir wissen, dass diese Prozesse nie schnell genug sein können. Hierbei ist unsere Zusammenarbeit mit den PC-und Hardware-Herstellern sehr wichtig, da wir sicherstellen möchten, dass die Zeiten, die wir unseren Labors messen (oder die Leistung, die wir nach einer Neuinstallierung messen) genau so gut sind wie bei einem neu gekauften PC.
  • Basissystem – Wir unternehmen einiges, um das Basissystem zu messen und optimal einzustellen. Dies bedeutet, dass wir die Ressourcenauslastung vor dem Laden zusätzlicher Software festhalten. Dieses System stellt sozusagen die “Grundlage” dar, die den Ausgangspunkt für alle Developer festlegt und die Systemanforderungen für eine angemessene Benutzererfahrung definiert. In diesen Zusammenhang wird häufig gefordert, etwas aus dem Basissystem herauszunehmen und es stattdessen „bei Bedarf“ zur Verfügung zu stellen. In die Untersuchung dieser Wünsche investieren wir einiges an Arbeit. Wir möchten jedoch eine Situation vermeiden, bei der die große Mehrheit von Benutzern gezwungen ist, ein Programm bei Bedarf zu laden, dadurch aber gleichzeitig eine verringerte Leistung bei gewohnten Vorgängen in Kauf nehmen muss.
  • Speicherbedarf – Obwohl der Speicherbedarf des Betriebssystems nicht direkt mit dessen Laufzeitleistung zusammenhängt, sehen viele Benutzer darin einen Indikator für die von ihnen beobachtete Leistung. In Bezug auf diesen Maßstab haben wir uns ein paar ganz bestimmte Ziele gesetzt und werden später näher auf die Details eingehen. Ebenso haben wir vor, \Windows\WinSxS näher zu erläutern, da dies häufiger Gegenstand der Diskussionen auf TechNet und MSDN ist. In diesem Bereich sehen wir anstelle von Kompromissen in Bezug auf die Laufzeit eher Kompromisse in Bezug auf bestimmte Annehmlichkeiten, wenn es um Dinge wie Datenträger-Gerätetreiber, dem angebotenen Umfang der Hilfe, wahlweise zur Verfügung gestellte Windows-Komponenten sowie Diagnostik und Protokolldaten geht.

Wir verfügen über eine Reihe von Kriterien, die wir am Ende der Meilensteine unseres Projekts an das Produkt anlegen, bevor wir zur Betaversion übergehen, und wir bringen das Produkt nicht auf den Markt, wenn diese Kriterien nicht weitestgehend erfüllt sind. Manchmal stellen diese Kriterien detailierte Vergleichstests dar (Seitenfehler, Prozessorauslastung, Working Set, Framerates für Spiele), während andere hingegen eher auf bestimmten Szenarien basieren und die Zeit messen, die für die Durchführung einer bestimmten Aufgabe erforderlich ist. (gemessene Zeit, Anzahl der Mausklicks). Wir nehmen diese Messungen an einer Reihe von Hardware-Plattformen vor (32-bit oder 64-bit; 1, 2, 4 GB RAM; 5400 bis 7200 RPM oder Solid State Disks; unterschiedliche Prozessoren etc.). Aufgrund der bei bestimmten Ansätzen der Softwarearchitektur erforderlichen Kompromisse führen wir häufig Code ein, der auf den jeweiligen Hardware-Typ abgestimmt ist, auf dem Windows betrieben wird.

Auf der einen Seite sollte das Thema „Leistung“ relativ einfach darzustellen sein: man benutzt weniger, tut weniger, und hat auch weniger. Solange man von allem weniger hat, sollte die Leistung besser sein. Im Extremfall trifft dies sicherlich zu. Wie wir den Kommentaren entnehmen, ist jedoch das, was der eine Benutzer unbedingt haben möchte, genau das, was ein anderer nicht haben möchte. Dies ist häufig bei den Features der Fall, die einige als “optische Spielereien” bezeichnen — viele der Benutzer wünschen sich, dass die zentrale Benutzeroberfläche durch Animationen und Grafiken aufgelockert wird (“wie bei den Produkten der Konkurrenz”), während andere wiederum sagen, wir sollen „auf die Grafiken verzichten und zu Windows 2000 zurückkehren”. Windows ist enorm flexibel und bietet viele Möglichkeiten, die Benutzererfahrung auf die jeweiligen Bedürfnisse abzustimmen. In diesem Forum wurde oft der Wunsch zum Ausdruck gebracht, bestimmte Versionen von Windows zur Verfügung zu stellen, die auf unterschiedliche Benutzerschichten zugeschnitten sind. Auf der anderen Seite haben wir auch einiges über die Notwendigkeit gehört, die Anzahl der verschiedenen Versionen von Windows zu reduzieren. Unsere Möglichkeiten, all diesen Wünschen gerecht zu werden, sind jedoch begrenzt, wenn wir gleichzeitig eine zuverlässige Plattform zur Verfügung stellen möchten, auf die sich die Benutzer und Entwickler gleichermaßen verlassen können, und die robust und für eine breite Schicht von Benutzern leicht zu handhaben ist. Und doch wird es innerhalb eines bestimmten Kontexts (bei der Benutzung zu Hause oder innerhalb eines Unternehmens, das eine ganz bestimmte Reihe von Programmen ausführt) immer möglich sein, von den Tools zur Anpassung und Verwaltung Gebrauch zu machen, die Windows für die Abstimmung auf die jeweiligen Bedürfnisse bietet. Die Möglichkeit der Entscheidung und Kontrolle darüber, was auf dem PC geschieht, ist von größter Bedeutung für uns, und Sie werden sehen, wie wir uns bei der Arbeit an Windows 7 auf deren Realisierung konzentrieren.

Die bei weitem größte Herausforderung bei dem Ziel, eine hervorragende Benutzererfahrung in Bezug auf Leistung zu bieten, liegt darin begründet, dass die Benutzer mit ihren PCs immer mehr tun wollen und mit Recht verlangen, dass dies auf ihrem PC möglich ist, wenn sie nur die entsprechenden Programme hinzufügen. Es stimmt zwar, dass Windows an sich bereits zusätzliche Funktionalität ermöglicht, aber gleichzeitig geben wir uns große Mühe bei der Auswahl der Features, von denen wir uns den größten Nutzen für den Großteil der Benutzer versprechen. Dennoch besteht ein signifikanter Teil unserer Arbeit an Windows 7 darin, für den Benutzer verschiedene Optionen und Möglichkeiten der Kontrolle darüber zu schaffen, welche Art von Software mit Windows zur Verfügung gestellt wird, z.B. welche Standardhandler es für bestimmte Dateitypen und Protokolle gibt, und dadurch eine Plattform zu erstellen, die es für die Endbenutzer einfach macht, ihre Computererfahrung auf ihre persönlichen Bedürfnisse abzustimmen.

Zum Schluss möchte ich noch kurz auf das Thema „Realität und ideale Voraussetzungen“ eingehen. Bei der Entwicklung von Windows führen wir unsere Vergleichstests unter Laborvoraussetzungen durch, die es uns gestatten, die Leistung und die Auswirkungen des von uns hinzugefügten Codes zu messen. Ebenso arbeiten wir eng mit den PC-Herstellern zusammen und unterstützen sie bei den Vergleichstests, die sie an den von ihnen ausgelieferten Systemen durchführen. Was die tatsächliche Leistung unseres Systems betrifft, bietet das Microsoft Customer Experience Improvement Program (anonym, vertraulich, freiwillig) Daten über die unterschiedlichen Geräte. Auf diese Daten werden wir uns in den nächsten Monaten häufig beziehen, da sie Auskunft darüber geben, wie die Dinge wirklich liegen, und wir somit nicht auf einzelne Berichte oder weniger verlässliche Informationsquellen angewiesen sind.

In unserem nächsten Beitrag werden wir auf die Leistung beim Starten und Systemneustart eingehen – angesichts des vorhandenen Interesses werden wir auf das Thema Leistung sicherlich noch häufiger zurückkommen.

--Steven