Microsoft verspricht beinahe mit jeder neuen Windows-Version einen noch schnelleren Rechnerstart, trotz ständig steigenden Umfangs. Tatsächlich steckt in Windows XP eine ganze Menge Gehirnschmalz, um den PC zügig auf Touren zu bringen. Das hält ungeduldige Zeitgenossen nicht davon ab, hier noch die eine oder andere Sekunde herauskitzeln zu wollen. "Geheimtipps", die das per einfachem Mausklick erledigen wollen, wären sicherlich eine feine Sache.
Unterthema: Start-Beschleuniger im Überblick
Zu den Design-Zielen, die Microsoft sich bei der Entwicklung von Windows XP gesetzt hat und die auch Hardware-Hersteller immer wieder zu hören bekommen, gehört, dass ein Windows-PC nach dem Drücken des Einschaltknopfes innerhalb von 30 Sekunden in einem benutzbaren Zustand sein soll. Trotzdem bemisst sich zumindest die gefühlte Boot-Zeit selbst aktueller Rechner eher nach Minuten als nach Sekunden. So überrascht es nicht, dass abenteuerliche Tipps und Tricks kursieren, wie Windows beim Start auf die Sprünge zu helfen ist.
Den meisten dieser Tipps ist eines gemeinsam: Sie betreiben Feintuning an Methoden, die Windows schon von sich aus einsetzt, um die Startzeit möglichst niedrig zu halten. Daraus ergeben sich zwei Konsequenzen: Zum einen kann man von diesen Fummeleien keine Wunderdinge erwarten. Vollmundige Versprechen von einem "rasanten Windows-Start" stellten sich bei unseren Experimenten als Verbesserungen hart an der Messbarkeitsgrenze heraus - wenn sie denn überhaupt eine Beschleunigung brachten. Zum anderen ist eine seriöse Aussage nach dem Motto "Dieser Trick spart zehn Sekunden" pauschal nicht möglich. Der tatsächliche Erfolg hängt neben der Geschwindigkeit der beteiligten Komponenten einfach zu sehr von der Historie des Rechners, also vom Zustand der Daten auf der Festplatte ab - davon wird noch ausführlich zu reden sein.
Meist ist ein bisschen gesunder Menschenverstand mehr wert als alle Fummeleien: Wer das BIOS seines Rechners bei jedem Einschalten zunächst sekundenlang den Hauptspeicher gründlich prüfen lässt, obwohl überhaupt keine Anzeichen für fehlerhaftes RAM vorliegen, kann hier möglicherweise schon mehr sparen als durch sämtliche Windows-Tricksereien. Auch Boot-Menüs, die vom Benutzer wissen wollen, welches Betriebssystem sie denn nun starten sollen, sind häufig auf eine überlange Wartezeit eingestellt - wer zu 99 Prozent dasselbe System nutzt, kann im Fall der Fälle sicher auch in ein oder zwei Sekunden die entscheidende Taste drücken. Und schließlich gilt natürlich die Binsenweisheit, dass alles, was Windows beim Start nicht laden oder initialisieren muss, auch keine Boot-Zeit kostet. Tipps zum Ausmisten gibt der Artikel auf Seite 102.
Wie eingangs erwähnt, benutzt Microsoft bereits von sich aus etliche Tricks, um die Zeit, die Windows zum Hochfahren braucht, in erträglichem Rahmen zu halten. Neben den im Folgenden beschriebenen technischen Klimmzügen besteht einer dieser Tricks schlicht aus einer Mogelei: Den Aussagen von Microsoft zufolge ist der Boot-Vorgang abgeschlossen, wenn der Desktop samt Symbolen sowie der Start-Button in der Taskleiste zu sehen ist. Jeder, der schon mal versucht hat, zu diesem Zeitpunkt ein Programm zu starten, wird erlebt haben, dass der Rechner durchaus noch eine ganze Weile länger mit sich selbst beschäftigt ist.
Daher ist es gar nicht so einfach, einen Zeitpunkt zu definieren, zu dem das System tatsächlich seine Initialisierung abgeschlossen hat. Es gibt nämlich Dienste und Programme, die einen Teil ihrer nach dem Start zu erledigenden Aufgaben nicht sofort in Angriff nehmen, sondern erst nach einer bestimmten Wartezeit. Zu solchen Diensten gehört das automatische Windows-Update, das erst etwa eine Minute nach seinem Start seine erste Anfrage an den Microsoft-Server richtet. So sinnvoll das im Sinne eines dem Anwender zügig zur Verfügung stehenden Systems ist, so schwer macht es dem Benchmarker eine zuverlässige Aussage darüber, wie viel Zeit ein System zum Booten benötigt. Die im Folgenden genannten Zeiten beziehen sich daher aus praktischen Erwägungen heraus doch auf Microsofts Messmethode. Solange das System keine übertriebene Zahl von Autostart-Programmen lädt, sind relative Vergleiche von Boot-Zeiten damit durchaus korrekt.
Um überhaupt herauszufinden, was genau ein Windows-Rechner im Zuge des Systemstarts so alles treibt und wie lange er dazu braucht, gibt es glücklicherweise ein Tool von Microsoft: Das Programm Bootvis ist eigentlich nicht für den normalen Windows-Anwender gedacht, sondern richtet sich an Computerhersteller, die damit in die Lage versetzt werden sollen, ihre Systeme auf einen schnellen Systemstart hin zu optimieren. Seit einiger Zeit ist das Werkzeug nicht mehr für die Allgemeinheit über eine offizielle Download-Adresse zu haben, über den Soft-Link am Ende des Artikels können Sie es aber trotzdem noch bekommen. Eine Bedienungsanleitung sucht man in diesem Download vergeblich; ausführlich beschrieben sind die Möglichkeiten des Tools in [1].
Bei älteren Windows-Versionen lief das Hochfahren in groben Zügen folgendermaßen ab: Nach dem Initialisieren der Massenspeicher wurde zunächst der Betriebssystemkern in den Speicher geladen. Der lud dann die benötigten Gerätetreiber einen nach dem anderen und rief deren Initialisierungsroutine für das jeweilige Gerät auf. Anschließend wurden auf dieselbe Weise die Systemdienste geladen und gestartet. Nach der Benutzeranmeldung wurde dann die Bedienoberfläche in Form des Windows Explorer gestartet, der sich schließlich um das Laden und Starten der Autostart-Programme kümmerte.
Dieses sequenzielle Vorgehen ist alles andere als optimal: Zum einen addieren sich die Initialisierungszeiten der Treiber, Dienste und automatisch gestarteten Programme zu einer erklecklichen Wartezeit. Abhilfe schafft hier, möglichst viele Aktionen gleichzeitig ablaufen zu lassen, wenn sie denn unabhängig voneinander sind.
Zum anderen frisst auch die Ladezeit der einzelnen Programmdateien einiges an Zeit, denn ein Treiber oder Dienst kann ja immer erst loslaufen, wenn sein Code im Hauptspeicher angekommen ist. Hier ließe sich eine Menge Zeit sparen, wenn Windows den Programmcode nicht immer erst dann laden würde, wenn er gebraucht wird, sondern schon im Voraus, sozusagen auf Vorrat. Genau das ist seit Windows XP der Fall - und am Feintuning dieses so genannten Prefetch-Mechanismus setzen einige der populäreren Boot-Beschleunigungstipps an.
Um die Dateien zu identifizieren, die höchstwahrscheinlich beim nächsten Systemstart gebraucht werden, zeichnet Windows XP beim Hochfahren sämtliche Dateizugriffe auf und speichert das Protokoll in der Datei %windir%\Prefetch\NTOSBOOT-B00DFAAD.pf. Windows schreibt diese Datei nach jedem Systemstart neu, und zwar etwa eine Minute, nachdem der Desktop auf dem Bildschirm zu sehen ist. Die Informationen, die sie enthält, stammen dabei nicht nur vom letzten Boot-Vorgang, sondern werden bei jedem Neustart um eventuell hinzugekommene Dateien ergänzt. Um sich den Inhalt des Ordners Prefetch anzeigen zu lassen oder Dateien zu manipulieren, benötigt man übrigens Administratorrechte.
Gängige Tipps zum Beschleunigen des Boot-Vorgangs behaupten nun, dass sich in den Prefetch-Informationen durch Update-Installierer und Shareware-Experimente im Laufe der Zeit eine ganze Menge Dateien ansammeln, die Windows bei jedem Start lädt, aber eigentlich gar nicht benötigt. Es empfehle sich daher, den Inhalt des Ordners Prefetch von Zeit zu Zeit einfach zu löschen.
Dieser Tipp ist aus zwei Gründen Humbug: Zum einen enthält die Datei NTOSBOOT-B00DFAAD.pf nicht Informationen über sämtliche vergangenen Systemstarts, sondern nur über die letzten acht. Dateien, die beim Booten nicht mehr benötigt werden, vergisst der Prefetcher also über kurz oder lang von selbst.
Messungen zeigen, dass der erste Systemstart nach einem Löschen der Protokolldatei erwartungsgemäß sehr lange dauert: Windows hat dann ja keine Prefetch-Informationen mehr und lädt sämtliche Startdateien zeitaufwendig in der Reihenfolge, in der sie benötigt werden. Die folgenden Boot-Vorgänge laufen dann mit ein bisschen Glück tatsächlich schneller ab als vor dem Eingriff, weil nun wirklich nur noch die für die aktuelle Konfiguration nötigen Dateien vorgeladen werden. "Mit ein bisschen Glück" deshalb, weil der Erfolg im Wesentlichen davon abhängt, ob Windows zuvor wirklich Überflüssiges geladen hat.
Auf einem für häufiges Ausprobieren von Software eingesetzten Redaktions-Notebook stieg die Boot-Zeit durch das Löschen der Prefetch-Informationen zunächst von 33 auf 43 Sekunden. Der nächste Start mit nun frisch erzeugtem Prefetch-Protokoll vollzog sich dann in nur noch 26 Sekunden. Hätten wir den Rechner allerdings in einem realitätsnäheren Umfeld betrieben, hätte sich dieser Erfolg spätestens nach einer Woche wohl auch von selbst eingestellt: Ausgehend vom ursprünglichen Platten-Image ließ testweises achtmaliges Booten ohne weitere Maßnahmen die Startzeit von 33 auf 27 Sekunden sinken.
Den gesamten Inhalt des Ordners Prefetch zu löschen ist noch aus einem anderen Grund nicht zu empfehlen: Auf die Boot-Zeit hat hier nur die erwähnte Datei Einfluss. In den anderen Dateien nach dem Namensmuster <Programmname>-<Kennung>.pf sammelt Windows ebenfalls Prefetch-Informationen, aber eben nicht solche, die das Booten betreffen, sondern den Start von Programmen im laufenden Betrieb. Anwendungen setzen sich häufig aus einer Vielzahl von DLLs zusammen, und auch die laden und initialisieren sich schneller, wenn sie schon mal in den Speicher geschaufelt werden, bevor das Programm sie wirklich benötigt. Außer bei größeren Updates ändert sich aber an der Zusammensetzung der zu einem Programm gehörenden Dateien selten etwas. Das Löschen der Prefetch-Informationen bezahlt man also damit, dass die betroffene Anwendung beim nächsten Mal zunächst deutlich langsamer startet, ohne sich aber im Weiteren gegenüber der ursprünglichen Ladezeit merklich zu beschleunigen.
Einen größeren Performance-Schub verspricht da schon, die beim Booten benötigten Dateien physikalisch so auf der Platte anzuordnen, dass der Prefetch-Mechanismus sie möglichst in einem Rutsch in den Speicher saugen kann. Auf einer typischen Installation liest Windows während der Prefetch-Phase Informationen aus bis zu 750 Dateien. Nimmt man den ungünstigsten Fall an, dass die Dateien zufällig über die gesamte Festplatte verstreut liegen, wartet dabei selbst eine schnelle Platte mit 10 Millisekunden mittlerer Zugriffszeit insgesamt 7,5 Sekunden lang auf Daten. Abgemildert wird diese Worst-Case-Betrachtung dadurch, dass der Prefetch-Mechanismus sämtliche Daten quasi gleichzeitig anfordert und der Festplattentreiber die Lesevorgänge in eine Reihenfolge mit möglichst wenigen Kopfbewegungen bringt.
Trotzdem lässt sich das Laden der Systemdateien durch Umsortieren auf der Festplatte noch weiter beschleunigen. Windows XP tut das schon von sich aus: Alle drei Tage schaut es während einer längeren Leerlaufzeit in den Prefetch-Ordner im Windows-Verzeichnis und fasst die in den .pf-Dateien enthaltenen Informationen in einer Datei namens Layout.ini zusammen. Anschließend startet es im Hintergrund das systemeigene Defragmentierprogramm, das diese Datei liest und versucht, die darin referenzierten Dateien in einen zusammenhängenden Bereich auf der Festplatte zu verschieben. Gelingen kann das nur, wenn der Rechner lange genug im Leerlauf bleibt, das heißt, der Benutzer keine Tastatur- und Mauseingaben vornimmt, und wenn ein hinreichend großer freier Bereich am Stück auf der Platte zur Verfügung steht. Als Anwender bekommt man diesen Vorgang durch minutenlange Festplattenaktivitäten scheinbar aus dem Nichts mit.
Das Zusammenschieben der im Prefetch-Ordner erfassten Dateien kann man von Hand anstoßen, indem man den Befehl
defrag c: -b
in einer Eingabeaufforderung oder unter "Start/Ausführen" eingibt. Als Laufwerk sollte man dabei natürlich die Partition angeben, auf der sich der Windows-Ordner befindet. Hat man Programme auf einer anderen Partition gespeichert, ist zum vollständigen Optimieren ein zweiter Defrag-Aufruf mit deren Laufwerksbuchstaben nötig. Der Befehl "Trace/Optimize System" des Programms Bootvis, der ihm den Ruf eingetragen hat, ein Tuning-Tool zu sein, tut nach unseren Erfahrungen nichts anderes, als die Prefetch-Optimierung auf allen in Frage kommenden Laufwerken durchzuführen.
Wirkliche Tuning-Tipps, die die mit ihnen verbundene Wartezeit rechtfertigen, sind das alles nicht: Eine nicht zu volle Festplatte vorausgesetzt, bringen sie in etwa dasselbe wie den Rechner zweimal pro Woche zum Beispiel in der Mittagspause für eine halbe Stunde sich selbst zu überlassen.
Damit das funktioniert, darf man allerdings auch an anderer Stelle nicht zu viel des Guten in Richtung Performance-Optimierung tun: Die automatische Prefetch-Optimierung wird vom Taskplaner angestoßen, folglich muss dieser Dienst laufen. Man sollte also der Versuchung widerstehen, seinen Starttyp in der Computerverwaltung auf etwas anderes als das vorgegebene "Automatisch" einzustellen.
Auch die meisten anderen in der unten stehenden Tabelle genannten Wundermittelchen zum Beschleunigen des Windows-Starts vermochten bei unseren Versuchen nicht recht zu überzeugen: Die Manipulationen an der Datei boot.ini brachten keinen Effekt, der sich mit Bootvis messen ließe; einzig auf einem antiken 560er Celeron mit Intel-82815-Grafik sparte das Ausschalten des grafischen Startbildschirms etwa 2 der 70 Sekunden, die er zum Booten braucht. Dabei ist zu beachten, dass die Messwerte, die Bootvis anzeigt, sowieso um etwa ±1 Sekunde schwanken.
Noch kurioser - und noch wirkungsloser - ist ein "Geheimtipp", der seit einiger Zeit durchs Internet geistert: Danach gibt es in Windows Longhorn - Pardon: Vista - einen neuen Registry-Eintrag, der das Booten noch einmal beschleunigt. Trage man ihn auf einem Windows-XP-System ein, werde auch dieses deutlich schneller geladen. Angeblich heißt der Eintrag EnableSuperfetch und müsse als DWORD mit dem Wert 1 im Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters erzeugt werden. Dass das unter XP nichts bringen kann, zeigt schon, dass die Zeichenkette "Superfetch" im gesamten Windows-Ordner nicht ein einziges Mal vorkommt, es also keinen Programmcode gibt, der diesen Wert auslesen könnte. Tatsache ist, dass in dem angesprochenen Schlüssel ein Wert namens EnablePrefetcher existiert, über den sich der Prefetcher steuern lässt: Eine 1 lässt ihn nur beim Laden von Anwendungen zum Zuge kommen, eine 2 nur beim Booten. Mit dem Standardwert 3 kümmert er sich um beides - und das ist auch gut so.
Das blinde Befolgen "geheimer" Tipps bringt für die Boot-Geschwindigkeit in der Regel wenig bis gar nichts. Mit gesundem Menschenverstand lässt sich meist wesentlich mehr erreichen. Neben dem Abschalten unnötiger Dienste und dem Ausmisten der Autostarts empfiehlt sich hin und wieder ein kritischer Blick auf die Hardwareausstattung des Rechners: Wer per Modem oder ISDN-Karte surft und nicht in einem LAN hängt, braucht keine Netzwerkkarte. Umgekehrt ist für DSL-Benutzer ein Modem überflüssig, wenn sie es nicht zum Faxen oder als Anrufbeantworter nutzen. Wer nur IDE-Platten besitzt, kann gut auf den SATA-RAID-Controller moderner Boards verzichten. Derartige Onboard-Komponenten lassen sich meist im BIOS abschalten; wo das nicht möglich ist, kann man sie im Gerätemanager deaktivieren und so die Ladezeit für überflüssige Treiber sparen. Beim Identifizieren der größten Zeitfresser hilft ein Tool wie Bootvis - als Tuning-Tool, das den Rechner per Mausklick beschleunigt, taugt es nicht.
Eigentlich ist das Herumdoktern am Windows-Start ja sowieso der falsche Weg, um seinem System auf die Sprünge zu helfen: Ein Windows XP, das auf gutmütiger Hardware läuft, braucht einen Neustart allenfalls noch nach dem Einspielen von Betriebssystem-Updates oder dem Installieren systemnaher Software. Zum Feierabend reicht es, den Rechner in den Ruhezustand zu versetzen. Das Aufwachen daraus vollzieht sich je nach Geschwindigkeit von CPU und Platte dreimal oder noch schneller als ein regulärer Kaltstart. Um dieses Feature zu nutzen, muss man allerdings bei der Anschaffung neuer Hardware darauf achten, dass die Treiber mit dem Ruhezustand klarkommen. (hos)
[1] Fast System Startup for PCs Running Windows XP, www.microsoft.com/whdc/system/sysperf/fastboot/fastboot-winxp.mspx
| Tipp | Behauptung/Versprechen | Kommentar |
| Prefetch-Ordner gelegentlich leeren | Der Prefetcher lädt häufig "zu viel voraus, was den Systemstart verlangsamt". "Im Laufe der Zeit sammelt sich im Prefetch-Ordner auch einiges an Unrat an." | Windows tilgt überflüssige Dateien nach acht Systemstarts von selbst. |
| Boot-Dateien defragmentieren (defrag c: -b) | sorgt für einen "zusätzlichen Schub beim Systemstart" | Windows defragmentiert die Boot-Dateien bei Leerlauf von selbst. |
| Boot-Vorgang beschleunigen mit Bootvis | "Microsoft hat ein Tool geschrieben, das das Booten beschleunigt." "Da stellt sich schon die Frage, warum so ein nützliches Tool nicht bei Windows mitgeliefert wird." | Bootvis enthält keine Funktion zum Beschleunigen des Boot-Vorgangs. |
| Parameter "NoGuiboot" in der Boot.ini setzen | XP lädt "einen zeitraubenden grafischen Startbildschirm". | gerade noch messbare Verbesserung auf langsamen Rechnern |
| Parameter "NoDebug" in der Boot.ini setzen | vermeidet, dass XP" systeminterne Startinformationen jedes Mal neu" speichert | ist bei XP sowieso ausgeschaltet, wenn man nicht explizit "Debug" setzt |
| Registry-Wert "Superfetch" auf 1 setzen | aktiviert einen neuen Beschleuniger von Windows Vista, der auch in XP schon enthalten ist, aber bislang von Microsoft geheim gehalten wurde | Keine Verbesserung; XP liest diesen Wert offenbar nicht. |
| Feste IP-Adresse vergeben | "Computer startet um einiges schneller." | Empfehlenswert, wenn kein DHCP-Server vorhanden ist. Erlaubt zudem das Abschalten des Dienstes DHCP-Client. |