PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lässt sich Prefetch deaktivieren?



dogio1979
30.04.2007, 10:20
Hallo,

mich würde mal interessieren, ob und wenn ja, wie sich die Prefetch-Funktion von XP deaktivieren lässt. Es dauert mir am Anfang nach dem Bootenein fach zu lange bis ich endlich arbeiten kann.

Danke und Gruß

Andy123
30.04.2007, 10:39
Hallo,
soll Prefetch eigentlich nicht dazu beitragen den Start von Windows zu beschleunigen?

Gruß Andy

olampl
30.04.2007, 11:00
Ja,soll es.

EDIT: Habe das überflussige Zitat gelöscht

dogio1979
30.04.2007, 11:03
Ich habe Prefetch immer so verstanden, dass es Programmstarts beschleunigt, da er bereits Daten in den RAM lädt, allerdings denke ich, dass das bei einem Raid-o-System nicht zwingend erforderlich ist.

phil.
30.04.2007, 11:09
Prefetch protokolliert u. a. die Häufigkeit der Programmaufrufe. Dieses wird auch von
Defragmentierungsprogrammen (auch das Windowsprogramm) genutzt, um Programme
in die schnelleren Bereiche der Festplatte zu verschieben. Diese Feature darf man nicht
mit Superfetch von Windows Vista verwechseln.
Der langsame Windowsstart dürfte nicht am Prefetch liegen und hat auch bei Raid 0
Systemen seine Berechtigung.

FAT B
30.04.2007, 11:09
also grundsätzlich beschleunigt prefetch den systemstart schon sehr stark. ausserdem erkennt es welche programme häufig genutzt werden und lädt diese beim systemstart in den arbeitsspeicher. dennoch empfiehlt sich alle 3-4 wochen den ordner "<system>:\windows\prefetch" zu leeren. allgemein eine sehr gute info über prefetch hier -> KLICK (http://www.windows-tweaks.info/html/use-prefetch.html), ich glaube da steht auch irgendwo wie mans in der registry abschaltet.

1668mib
30.04.2007, 11:12
So viel ich weiß lädt die Windows XP-Prefetch-Funktion keine Daten im Voraus ein, sondern nur bei Bedarf... hast du ne Quelle für die Annahme, dass das Deaktivieren der Prefetch-Funktion den Windows-Start beschleunigt? Und warum soll Raid-0 den Programmstart merklich beschleunigen? Beim Programmstart kommt es meist weniger um den Datendurchsatz der Festplatte an sondern viel mehr um die Zugriffszeiten der Platte...

FAT B
30.04.2007, 11:20
So viel ich weiß lädt die Windows XP-Prefetch-Funktion keine Daten im Voraus ein, sondern nur bei Bedarf...

nicht "nur" bei bedarf, sondern alle anwendungen von denen es meint, dass du sie häufig benutzt (die anzahl könnte beschränkt sein, darüber weiss ich aber nix -> vielleicht mal m$ knowledgebase konsultieren).

PCB
30.04.2007, 12:36
Ähm, FAT B, hast du vielleicht das kleine Wort "keine" in 1668mib's Post übersehen? Ansonsten macht deine Aussage keinen Sinn, zumal sie auch noch falsch ist!

Man sollte nicht Superfetch (Vista) und Prefetch (XP) verwechseln, dies sind 2 verschiedene Ansätze. Wobei Superfetch eine Weiterentwicklung von Prefetch ist und dieses auch benötigt um richtig zu funktionieren.

XP's Prefetch optimiert nur die Positionierung von Boot- und Anwendungs-Dateien, damit diese mit möglichst geringer Festplatten-Latenz geladen werden können.
Im voraus lädt Prefetch gar nichts in den RAM, dies macht nur Superfetch so (es füllt den Speicher fast komplett mit seinen Daten, weswegen manche "Schwanzlängenmesser" dann nen Panikanfall kriegen! :D )

Ich kenne nur eine sinnvolle Optimierung des Prefetch-Mechanismus, und zwar ist es IMO sinnlos, immer und immer wieder die Bootfiles zu verschieben, da diese sich ja nie ändern. Diese Optimierung kann man also getrost ausschalten.

Dazu in der Registy unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters das DWORD "EnablePrefetcher" auf den Wert "1" stellen

Die möglichen Werte fürs Prefetching:

0 = kein Prefetching
1 = Prefetching für Anwendungen
2 = Prefetching für Bootvorgang
3 = Prefetching für Beide (Standard-Einstellung)


my2cents


PCB

1668mib
30.04.2007, 12:47
nicht "nur" bei bedarf, sondern alle anwendungen von denen es meint, dass du sie häufig benutzt (
Dieses Verhalten gilt AFAIK nur für Windows Vistas Superprefetch.

Macht einfach mal nen Test unter Windows XP...
Startet den Rechner neu, messt die Zeit bis ihr wirklich arbeiten könnt mit dem System, am besten 3 Mal...
Wiederholt den Test, löscht aber vor jedem Neustart den Prefetch-Ordner - Windows dürfte ja so nichts haben, was es bereits im Voraus in den Speicher laden könnte und der Start müsste ja spürbar schneller gehen (genauso wie Raid-0 die Zugriffszeiten der Festplatten spürbar verbessert <- Ironie).

FAT B
30.04.2007, 13:01
@PCB
doch doch, das ergibt sinn. er schreibt es werden keine daten vorgeladen (nur bei bdarf), ich habe geschrieben nicht nur bei bedarf, sondern gleich am start. wo ist da was sinnfreies dude?


Dieses Verhalten gilt AFAIK nur für Windows Vistas Superprefetch.

äh. nein. superfetch läuft AFAIK anders ab.

nimm dir mal die zeit und lies den link von mir weiter oben, da steht genau was prefetch wie macht.




\\edit.

achja, und da ich meine aussagen lieber mit quellen fundiere, ZITAT aus diesemem LINK (http://msdn2.microsoft.com/en-us/library/ms940847.aspx):

"Prefetch is a utility that is intended to improve Windows and application startup performance by loading application data into memory before it is demanded" -> also nicht bei bedarf, sondern vorher.


wer meint ich liege falsch, bitte quellen angeben.

1668mib
30.04.2007, 13:16
Alleine das Gerede über den "/prefetch"-Parameter lässt die Seite für mich als sehr wenig kompetent erscheinen... (btw: Der Sinn des Prefetch-Parameters ist, dass ein und die selbe Applikation für verschiedene Anwendungszwecke verschiedene Prefetch-Dateien brauchen kann, wie z.B. der WMP - dieser ändert sein Startverhalten je nach dem ob er z.B. im DVD-, im MP3-, im Video- oder im CD-Betrieb gestartet wird)

Btw: Superfetch ganz einfach erklärt...
http://www.microsoft.com/windows/products/windowsvista/features/details/superfetch.mspx

MagicAndre1981
30.04.2007, 13:23
Der langsame Windowsstart dürfte nicht am Prefetch liegen

doch. Wenn ich den Prefetch an mache, dann läuft der Ladebalken unter XP 8 Mal durch, ohne Prefetch nur 1,5 Mal und Windows ist ohne Prefetch viel schneller.

1668mib
30.04.2007, 13:30
doch. Wenn ich den Prefetch an mache, dann läuft der Ladebalken unter XP 8 Mal durch, ohne Prefetch nur 1,5 Mal und Windows ist ohne Prefetch viel schneller.

Ist das nun Ironie oder dein Ernst? Naja in beiden Fällen muss ich jedenfalls fast lachen...

Ich bezweifle, dass das Prefetch irgendeinen Einfluss auf Vorgänge hat, die noch während des Ladebalkens des Windows XP-Bootscreens zu sehen sind... würde mich aber gerne vom Gegenteil überzeugen lassen...

FAT B
30.04.2007, 13:44
ich glaube den einzigen den du auslachen kannst sind die windowsprogrammierer oder dich selbst.

also ich hab selbst spasseshalber mal den test gemacht: prefetch ordner voll - ladebalken 7mal
prefetch ordner leer - ladebalken 4mal
prefetch deaktiviert - ladebalken 3mal

lach dich selbst an, denn irgendeinen mysteriösen einfluß scheint das ganze ja zu haben.

phil.
30.04.2007, 13:52
Jo, bei Vista läuf der Ladebalken 3x, bei XP 7x. Trotzdem ist XP schneller hochgefahren.
Hier noch einmal ein paar Informationen zu Prefetch (http://www.helmrohr.de/Guides/Prefetching.htm) unter XP.
Das Löschen der Prefetchdateien ist übrigens absolut überflüssig.

Es macht allerdings keinerlei Sinn, den Inhalt des \Prefetch Verzeichnisses von Zeit zu Zeit zu löschen, weil XP die Inhalte von sich aus reorganisiert und überflüssige Einträge entfernt. Im Gegenteil, der Bootvorgang dauert deutlich länger, nachdem manuell gelöscht wurde.

Dauer des Bootens normal: 30 Sekunden
Dauer des Bootens nach Löschen von \%windir%\prefetch: 40 Sekunden

Das verringert sich natürlich wieder, sobald XP einmal seine Leerlaufttasks durchgeführt hat, Sinn macht diese Maßnahme aber trotzdem nicht.

FAT B
30.04.2007, 14:04
interessant.... mach ich demnächst nochmal mit stoppuhr nen versuch und poste mein ergebnis :D

1668mib
30.04.2007, 14:05
FAT B, wenn ich Zeit dafür habe mach ich auch mal das lustige Prefetch-Spielchen mit... allerdings hab ich bereits weiter oben geschrieben, dass man bitte den Test mindestens 3 Mal machen sollte... und mein Lachen bezog sich auf den kompletten Satz und besonders den hinteren Teil...

Zonk4
30.04.2007, 14:12
das prefetch dein Startverhalten nicht negativ beeinflusst, wurde ja schon mehrfach geschrieben

wen du herausbekommen willst, was da los ist, mach mal einen Cleanboot:

http://support.microsoft.com/kb/310353/de


außerdem kannst du ein Bootprotokoll anfertigen, um Probleme einzugrenzen:

wenn du den Bootbereich mitloggen willst mußt du in der Boot.ini auch die entsprechenden Parameter setzen

Hinter das /fastdetect schreibst du noch /BOOTLOG

Beispiel:

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional/HOME" /fastdetect /BOOTLOG

Dann wird beim Booten eine NTBTLOG.TXT erstellt, wo drinsteht welche Treiber etc. geladen wurden und welche Fehler aufgetreten sind

MagicAndre1981
30.04.2007, 16:41
Ist das nun Ironie oder dein Ernst? Naja in beiden Fällen muss ich jedenfalls fast lachen...

und was willst du DAU mir damit sagen? Das du lachen kannst? Über dich selber? ;)



Ich bezweifle, dass das Prefetch irgendeinen Einfluss auf Vorgänge hat, die noch während des Ladebalkens des Windows XP-Bootscreens zu sehen sind... würde mich aber gerne vom Gegenteil überzeugen lassen...

probier es aus, es macht klar einen Unterschied ;)

Zonk4
30.04.2007, 17:40
könnt ihr euer albernes Gezänk mal per PN weiter machen, hier hat das nichts zu suchen :mad

1668mib
01.05.2007, 14:24
und was willst du DAU mir damit sagen? Das du lachen kannst? Über dich selber? ;)
Wenn einem die Argumente ausgehen muss man beleidigen?

MagicAndre1981
01.05.2007, 17:33
nöö, also für die DAUs unter uns zum Mitschreiben.

Was dauert wohl länger? Ersten wenn man nur die daten lädt die Windows zum Ausführen braucht oder alle Daten die man vllt später mal brauchen könnte?

[PaulPanzerStimmean]Richtig[PaulpanzerStimmeAus], natürlich das wo nur die notwendigen Daten gelesen werden. Prefetch verlängert das Booten erlaubt aber ein schnelleres Starten von Programmen, da die Daten ja schon in den RAM geladen wurden. ;)

dogio1979
01.05.2007, 18:36
@MagicAndre1981

das wäre jetzt auch mein Ansatz gewesen :)
Ne Quelle hatte ich jetzt nicht, sondern hatte nur versucht, logisch an die Sache heranzugehen.:)

MagicAndre1981
01.05.2007, 18:45
das ist ja auch logisch so

Das Prefetching könnt ihr über
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
EnablePrefetcher steuern.

-oSi-
01.05.2007, 18:52
Das Ganze kann auch über ein Tool gemacht werden.

Windows XP Prefetch Clean And Control (http://www.tecchannel.de/client/windows/458110/index13.html)

http://www.tecchannel.de/imgserver/bdb/354000/354051/original.jpg

Download (http://www.majorgeeks.com/download.php?det=2495)


Der Sinn oder Unsinn dieses Tools sei jetzt mal dahin gestellt...

1668mib
02.05.2007, 00:19
da die Daten ja schon in den RAM geladen wurden. ;)
Und genau das macht das Windows XP-Prefetech nicht, sondern Super-Prefetch von Windows Vista... (siehe Link weiter oben)

Edit:
Hier auch ein schöner Link:
http://msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/default.aspx
Einfach mal den Teil "Prefetch" durchlesen. Ich weiß dass man anfangs den Eindruck bekommen kann, dass es tatsächlich diverse Dateien usw im Voraus lädt (besonders durch Sätze wie "Prefetching is the process of bringing data and code pages into memory from disk before it's demanded"). Dennoch sollte man sich den kompletten Prefetch-Teil durchlesen, und hier wird's dann eindeutig:


When the system boots or an application starts, the Cache Manager is called to give it an opportunity to perform prefetching. The Cache Manager looks in the prefetch directory to see if a trace file exists for the prefetch scenario in question.

Windows XP-Prefetch liest also nur Daten von Programmen im Voraus ein, die gestartet wurden, und deshalb macht das leeren des Prefetch-Ordners auch gar keinen Sinn wie schon von diversen Seiten geschrieben wurde... Glaubt ihr auch noch, dass das Abschalten des QoS-Dienstes 20% mehr Internetbandbreite bringt?

Als ich das letzte Mal mein Windows XP neugestartet hatte (mit Prefetch) ging der Ladebalken übrigens auch nur 1,5 Mal durch...

BeeHaa
02.05.2007, 01:20
Leute... :freak Jedes Jahr kommt ein neuer Schub von Grennhorns die "uns" alten Hasen, von ihrer überragender Logik getragen, erzählen wollen wie Windows funktioniert.

http://www.helmrohr.de/Guides/Prefetching.htm

Gezeigt anhand von Bootvis. Der ist aber seit XPsp2 NICHT zu empfehlen. Bitte nicht benutzen.

PCB liegt übrigens trotzdem leicht falsch mit seiner Erklärung der Konfig ;)
Hier hat MS nämlich wie gewohnt verkackt. Falls das "Prefetchen" der Anwendungen aktiv ist, werden nicht nur die Anwendungen selbst, sondern ihre 'Daten' ebenfalls erfasst. ZB. Bei Word die meistaufgerufenen Dokumente.

An sich feine Sache. Problematisch wird es aber, wenn man sich freakmässig mehrmals in der Woche zB. ein Video anschaut. Ich hab mir meine Sonderedition von Matrix damals als Divx auf die Platte gehauen. Dann landet nicht nur zB. der VLC im Prefetch, sondern auch die Videos. Stört erstmal nicht. Im \Prefetch. Da werden nur jeweils paar KB Infos zu den Speicherseiten abgelegt. NERVT dagegen beim Defragmentieren gewaltig, weil dann auch 700 MB Videodateien unnötigerweise an den Anfang der Platte geschoben werden (sie wurden ja miterfasst).

Mir fehlt also klar eine zusätliche Option, mit welcher man den Prefetch nur für Bootdateien und Anwendungen einstellen könnte. Nicht für Bootdateien, Anwendungen und 'meistbenutzte "Dokumente"'.

C:\Windows ist bei mir mittlerweile 4 Jahre alt. XP startet auf einem 2.6Ghz Barton, nF2 Board und einer 80GB Platte in 25s. Damals, als ich noch einen 1.4Ghz Athlon und eine 40GB Platte hatte, startete es in 28s. Prefetch für Bootdateien war an, ist an und bleibt an.

@MagicAndre1981
Keine ruhmreiche Vorstellung ;)

-oSi-
02.05.2007, 15:10
Jungs. Wie war die Eingangsfrage nochmal ?


...mich würde mal interessieren, ob und wenn ja, wie sich die Prefetch-Funktion von XP deaktivieren lässt.
Ich lese nichts davon, wie Prefetching funktioniert oder was es ist. :rolleyes

Bleibt bitte beim Thema.

1668mib
02.05.2007, 16:07
@-oSi-: Das wurde doch schon mehrfach hier beantwortet oO

@BeeHaa: Ich weiß jetzt nicht ob du meine Argumentation unterstützst oder widerlegst, denn auch dein Link könnte oberflächlich betrachtet beide Schlussfolgerungen zulassen...

Z.B. dieser Satz könnte, wenn man nur den Anfang und vor allem nur das liest, was man lesen will, missinterpretiert werden:

In Windows XP gibt es ein neues Feature: "Prefetching". Damit werden bereits vorbereitete Speicherseiten schon geladen, bevor sie gebraucht werden.

Natürlich lädt auch Windows XP Seiten im Voraus, bevor sie gebraucht werden. Aber der Zeitpunkt dieses Vorausladens unterscheidet sich zwischen Windows XP und Windows Vista.
Windows XP-Prefetch nutzt Prefetch exakt dann, wenn ein Programm/Gerätetreiber oder sonst was gestartet wird, dann wird es unabhängig davon, welche Programmteile das Programm gleich nutzen wird diverse Speicherseiten wohlwissend dass sie zu großer Wahrscheinlichkeit gebraucht werden in den Speicher geladen um so den Programmstart zu beschleunigen und nicht zu warten, bis jede einzelne Speicherseite gelesen werden muss zu dem Zeitpunkt, wenn die Anfrage kommt.
Windows Vista-Superprefetch weiß anhand des Nutzerverhaltens, welche Software der Benutzer hauptsächlich einsetzt - anhand dieses Wissens hält es deshalb die häufigst genutzten Programmspeicherseiten im RAM. Leicht zu erkennen am scheinbar ungeheueren Speicherbedarf von Vista (freier RAM geht gegen Null).

BeeHaa
02.05.2007, 20:45
Jungs. Wie war die Eingangsfrage nochmal ?


Ich lese nichts davon, wie Prefetching funktioniert oder was es ist. :rolleyes

Bleibt bitte beim ThemaDie Frage nach dem falschen Film ist berechtigt. Ich quote aus dem ersten und folgenden Posting des Threadstarters. Netterweise, für dich:

"Es dauert mir am Anfang nach dem Bootenein fach zu lange bis ich endlich arbeiten kann"

Falsche Schlussfolgerung.

"Ich habe Prefetch immer so verstanden, dass es Programmstarts beschleunigt, da er bereits Daten in den RAM lädt, allerdings denke ich, dass das bei einem Raid-o-System nicht zwingend erforderlich ist"

Prefetch leider nicht wirklich verstanden.

Beides nicht schlimm, aber mit dem Versuch deinerseits die 'Aufklärungsarbeit' als Klugscheisserei oder sontiges abzutun, schlägst du dich irgendwie mit eigenen Waffen...
Bleib also bitte selbst beim Thema, statt aufzurufen beim Thema zu bleiben.

@1668mib
Ich unterstütze keine Aussagen, sondern immer nur die Wahrheit ;)
Wie, Vista? Um Vista geht es hier überhaupt nicht. Jedenfalls sollte es das nicht. Vista ist der einzige Pat hier im Thread zu welchem der von mir gequotete Posting von -oSi- passt.

EOD

werkam
02.05.2007, 22:32
Damit diese Funktion (Prefetching) läuft, muss auch der Dienst "Taskplaner" und die "Windows-Firewall" (Internetverbindungsfirewall) aktiv sein.

dogio1979
02.05.2007, 22:37
Also meines Erachtens können wir den Thread jetzt schließen. Die gestellte und auch nicht gestellte Fragen wurden beantwortet und ich bin einerseits etwas schlauer und anderseits genauso dumm wie vorher.

Resümee: Ja Prefetch lässt sich deaktivieren. Ob es allerdings das Booten beschleunigt oder verlangsamt ist unklar. Speilt aber auch keine Rolle. Ich lasse es einfach so wies ist und hole mir während des Systemstarts einfach nen neuen kaffee. Jungs das thema muss nicht dazu dienen sich zu streiten.

Schluss, aus, vorbei, gute Nacht :)

BeeHaa
02.05.2007, 22:57
Ruhig, ist ja keinem was passiert bis jetzt ;)

Der Taskplaner (Dienst) sollte wie gesagt laufen, damit das funktioniert. Das ist mittlerweile bekannt.

Daß die Firewall laufen muß ist selbst mir neu. Dazu wären dann paar Links nett, werkam.

(was mir eben noch einfällt)
@dogio1979
Hast du einen Defragproggi, der die layout.ini auch benutzt? Versuch mal folgendes. Testweise. Passiert ja nichts :)

1. Alle Programme beenden. Startleiset->Ausführen. Da cmd ausführen. In der Konsole rundll32.exe advapi32.dll,ProcessIdleTasks

Den Rechner nicht anrühren nun, bis die Bootplatte sich 10s nicht mehr bewegt.

2. In der immernoch offenen Konsole defrag c: -b.

Wenn der Fertig ist, neustarten. Und berichten, ob es was gebracht hat.

Sonst kann es der virenscanner oder sonstwas sein. "Normal ist das nicht" ;)

Bin dann nun raus.

MagicAndre1981
03.05.2007, 00:44
Daß die Firewall laufen muß ist selbst mir neu. Dazu wären dann paar Links nett, werkam.


das ist Käse :rolleyes



Natürlich lädt auch Windows XP Seiten im Voraus, bevor sie gebraucht werden. Aber der Zeitpunkt dieses Vorausladens unterscheidet sich zwischen Windows XP und Windows Vista.
Windows XP-Prefetch nutzt Prefetch exakt dann, wenn ein Programm/Gerätetreiber oder sonst was gestartet wird, dann wird es unabhängig davon, welche Programmteile das Programm gleich nutzen wird diverse Speicherseiten wohlwissend dass sie zu großer Wahrscheinlichkeit gebraucht werden in den Speicher geladen um so den Programmstart zu beschleunigen und nicht zu warten, bis jede einzelne Speicherseite gelesen werden muss zu dem Zeitpunkt, wenn die Anfrage kommt.
Windows Vista-Superprefetch weiß anhand des Nutzerverhaltens, welche Software der Benutzer hauptsächlich einsetzt - anhand dieses Wissens hält es deshalb die häufigst genutzten Programmspeicherseiten im RAM.


so ist es, deshalb fnutze ich das Prefetch von XP einfach nicht. Mein XP rennt nun seit 2 Jahren ohne Probleme, so schnell wie am ersten Tag ohne das Prefetch.

Bei Vista möchte ich das Superpetch nicht mehr missen aber bei XP bringt es nix