So erhöhen Sie den Festplatten-Cache von Windows 7

18

Unter Windows 7 (64 Bit) lese ich 9000 mittelgroße Dateien durch. Insgesamt gibt es mehr als 200 MB Daten. Mit Java (JDK 1.6.21) gehe ich die Dateien durch. Die ersten 1400 oder so laufen mit voller Geschwindigkeit, aber dann sinkt die Geschwindigkeit auf 4 ms pro Datei. Es stellt sich heraus, dass die Hauptkosten nur durch das Öffnen der Dateien anfallen.

Ich öffne die Dateien mit new FileInputStream(und schließe sie natürlich rechtzeitig, um Dateiverluste zu vermeiden). Nach einigen Nachforschungen stelle ich fest, dass der Windows-Festplattencache nur etwa 100 MB RAM belegt, obwohl mir 8 GB zur Verfügung stehen. Ich habe versucht, die Cachegröße mit dem CacheSet- Tool zu erhöhen , aber alle von mir angegebenen Werte liegen außerhalb des zulässigen Bereichs .

Ich habe auch versucht, den LargeSystemCacheRegistrierungsschlüssel zu aktivieren, aber (nach dem Neustart) zeigt das CacheSetTool weiterhin an, dass ich 100 MB Cache verwende (und während des Testlaufs nicht zunimmt). Hat jemand Vorschläge, um Windows 7 zum Zwischenspeichern meiner 9000-Dateien zu "ermutigen"?

Sathyajith Bhat
quelle
3
Woher haben Sie die Information, dass nur 100 MB für den Festplatten-Cache verwendet werden? Soweit ich weiß, verwendet Windows standardmäßig den gesamten freien Speicher für das Zwischenspeichern von Datenträgern. Ein Wert von nur 100 MB scheint mir ein Mindestwert zu sein.
Robert
1
Ein Teil des Problems könnte Java und JVM sein. Es gibt unzählige Möglichkeiten, die JVM zu optimieren - publib.boulder.ibm.com/infocenter/javasdk/v6r0/… . Ich denke, Ihre beste Wette ist es, es einfach in C ++ oder FreeBASIC zu schreiben (beides kompiliert sich zu nativem Code und ist nur begrenzt durch das, was das Betriebssystem zulässt).
Natalie Adams

Antworten:

4

Superfetch speichert nicht alle großen Dateien im Cache, sondern nur die Teile, auf die zugegriffen wird. Um auf diese Datei zuzugreifen, muss die Festplatte noch gelesen werden. Ein Festplatten-Cache von 210 MB wie ich kann alles von all diesen kleinen Dateien in Windows zwischenspeichern. Und die Leistung ist spürbar. Ich bezweifle jedoch, dass es Auswirkungen auf schnellere Systeme haben würde.

Soren
quelle
2
Was ist Superfetch und in welcher Beziehung steht es zu dieser Frage?
Jpaugh
4

Ich habe versucht, die Cache-Größe mit dem CacheSet-Tool zu erhöhen, aber alle von mir angegebenen Werte liegen außerhalb des zulässigen Bereichs.

  1. Stellen Sie sicher, dass Sie CacheSet "Als Administrator" explizit ausführen. CacheSet werden sagen , dass die Werte des Bereichs liegen, wenn etwas schief geht.
  2. Stellen Sie sicher, dass die Cache-Größe durch 4 KB teilbar ist

Außerdem habe ich festgestellt, dass CacheSet Probleme mit großen Werten hat, möglicherweise, weil es sich um eine 32-Bit-Anwendung aus dem Jahr 2006 handelt. Ich habe ein 64-Bit-Programm um dieselbe API geschrieben, mit dem Cachegrößen über 4 GB festgelegt werden können: http: / /blog.thecybershadow.net/2012/12/14/64-bit-cacheset/

Hinweis: Im CacheSet-Artikel wird CacheMan erwähnt. Die neueste Version verwendet jedoch anscheinend dieselbe API wie CacheSet. Sie ist lediglich in eine Benutzeroberfläche mit einer Reihe von Voreinstellungen und anderen Funktionen gepackt.

Vladimir Panteleev
quelle
0

Ich weiß, dass dies alt ist, aber für andere, die auf dieses Problem stoßen : Sie müssen CacheSet manuell mit Administratorrechten ausführen. Wenn Sie dies nicht tun, wird der Fehler OutOfRange angezeigt. Es fragt NICHT automatisch nach Berechtigungen.

Jan Schejbal
quelle