Nachhaltige Beschleunigung von Windows XP


Technorati-Tags:

Wer Windows XP längere Zeit benutzt, kennt das Phänomen: Der Rechner wird im Laufe der Zeit immer langsamer. Die gängige Problemlösung in vielen Fällen: neu installieren. Das ist weder schön noch praktisch, und meistens ist es auch gar nicht notwendig.

Der Grund für die zunehmende Langsamkeit ist häufig PreFetch. Das ist ein Mechanismus, der dafür sorgt, daß Dateien, die beim Systemstart geladen werden müssen, proaktiv von der Platte gelesen und im Cache vorgehalten werden. Das funktioniert prinzipiell sehr gut, nur räumt PreFetch Dateien, die nicht mehr gebraucht werden, nicht auf, sondern lädt sie weiterhin. Der PreFetch-Cache wird immer größer, und irgendwann bremst er den Rechner aus.

Abhilfe schafft hier ein ganz simples Skript:

c:
cd %systemroot%\prefetch
del *.* /q /f

%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks

defrag %systemdrive% -b
defrag %systemdrive% -b
defrag %systemdrive% -b
defrag %systemdrive% -b

Der erste Block dient dazu, das PreFetch-Verzeichnis zu löschen. In diesem Verzeichnis speichert Windows XP Pointer zu den Dateien, die in den Cache geladen werden sollen. Danach müßten Sie eigentlich den Rechner zehnmal booten, damit das PreFetch-Verzeichnis neu aufgebaut wird. Statt dessen rufen Sie einfach den System Idle-Task zehnmal auf, das hat den gleichen Effekt. Zum Abschluß lassen wir noch 'defrag /b' laufen - '/b' optimiert die Festplatte für den Boot-Prozess. Jetzt sollte XP wieder so schnell sein wie direkt nach der Installation.

Windows Vista hat dieses Problem übrigens nicht, das dort implementierte SuperFetch optimiert sich permanent selbst.

Mit freundlichen Grüßen!

 

Ralf M. Schnell

Comments (13)
  1. Anonymous says:

    Wie erstlle ich dieses skript und wo speichern

  2. Anonymous says:

    Re: Risiko?

    Zu sagen, es könne definitiv überhaupt gar nie nichts passieren, ist immer fahrlässig. Aber dieses Skript verändert das System oder Applikationen in keiner Weise, wurde schon sehr oft angewendet und ist an sich völlig harmlos. Ich sehe nicht, wie eine Korruption von System oder Programmen entstehen sollte.

    Mit freundlichen Grüßen!

    Ralf M. Schnell

  3. Anonymous says:

    Re: Konträre Meinungen zur Wirksamkeit des Skripts

    Hallo!

    Ja, ja, das liebe Kleingedruckte … Also: alle Artikel, die ich zu diesem Thema gefunden habe (z.B. der von Ed Bott), sagen aus, daß das Löschen des PreFetch-Cache nichts bringt. Richtig! Das allein bringt überhaupt nichts! Wenn man aber zusätzlich den Cache gleich neu aufbaut (10x Idle Task) und eine Boot-Defragmentierung durchführt (defrag -b), dann erhält man im Ergebnis ein frisch aufgeräumtes System. Ja, XP räumt auch ab und zu selbst auf, das nützt mir aber nichts, wenn ich akute Probleme mit der Geschwindigkeit meines Rechners habe.

    Mit freundlichen Grüßen!

    Ralf M. Schnell

  4. Daniel says:

    Besteht eine Gefahr bzw ein Risiko bei diesem Skript. z.B dass der PC nicht mehr startet oder dass Programme nicht mehr funktionieren?

    Vielen Dank

  5. manuel says:

    Hallo Ralf,

    erstmal danke für diesen Artikel und vor allem für das kleine Script. Schöne Sache!

    Zu dem Thema PreFetch hab ich schon des öfteren was auf verschiedenen Tweak-Sites, in Foren oder auch auf Seiten wie TecChannel was gelesen. So z.B., dass man das Script öfter mal laufen lassen sollte oder auch gleich die PrefetchParameters in der Registry zu bearbeiten (Optimierung für den Boot-Vorgang und Anwendungen).

    Durch diesen Artikel hier und ein wenig Recherche bin ich jetzt aber auf einen Artikel von Ryan Myers (http://blogs.msdn.com/ryanmy/archive/2005/05/25/421882.aspx) gestoßen. Er spricht sich meinem Verständnis nach explizit gegen das leeren des PreFetch-Ordners aus, da XP wohl sowieso nur maximal 128 Einträge listet und die ältesten selbst löscht/überschreibt. Auch werden Einträge, zu denen keine Anwendung mehr existiert, nicht mehr beachtet. Somit soll sich nicht wirklich eine Verbesserung der Performance ergeben. Wohl eher das Gegenteil, da der PreFetch-Cache auch erstmal wieder befüllt werden muss.

    Wie gesagt, ich könnte da vielleicht auch was missverstanden haben.

  6. Jürgen says:

    Hi Ralf,

    kannst Du bitte etwas zu der Meinung von Ed Bott sagen.

    http://www.edbott.com/weblog/archives/000743.html

    Gruß

    Jürgen

  7. Martin says:

    Hi Ralf,

    danke für den Beitrag/Skript. Werde ich heute mal bei Gelegenheit ausprobieren.

  8. lars says:

    Moin!

    Kleine Korrektur: Windows XP muss nicht auf Laufwerk C: installiert sein. So sieht das Script bei mir aus, ist etwas übersichtlicher.

    <snip>

    %Systemdrive%

    cd %systemroot%prefetch

    del *.* /q /f

    for /L %%i in (1,1,10) do %windir%system32rundll32.exe advapi32.dll,ProcessIdleTasks

    for /L %%d in (1,1,4) do defrag %systemdrive% -b

    <snap>

    Lars.

  9. Lars Langewiesche says:

    ein

    del %systemroot%prefetch*.* /q /f

    ist zudem sicherer …. was ist wenn es ein prefetch ordner aus welchen gruenden auch immer nicht geben sollte … dann loescht der alles files im C: 🙂

  10. haru says:

    wie rststelli ich den Skript und wo speichern

  11. Phil says:

    Es geht wenn du eine neue txt datei mit rechtsklick erstellst , dort alles hinein kopierst und danach speicherst und schliesst . Dann muss du nur noch das .txt durch .bat im dateinamen ersetzen , dazu musst du dir dateiendungen anzeigen lassen .

    Dann genügt ein Doppelklick drauf

  12. Guido Burkhard says:

    wie bitte startet man den System Idle Task?

Comments are closed.

Skip to main content