So erhöhen Sie den Festplattencache von Windows 7

61017
Sathya

Unter Windows 7 (64 Bit) lese ich 9000 Dateien in mittlerer Größe. Insgesamt sind mehr als 200 MB Daten vorhanden. Java verwenden (JDK 1.6.21) Ich durchlaufe die Dateien. Die ersten 1400 laufen mit voller Geschwindigkeit, aber die Geschwindigkeit sinkt auf 4 ms pro Datei. Es stellt sich heraus, dass die Hauptkosten einfach durch das Öffnen der Dateien entstehen.

Ich öffne die Dateien mit new FileInputStream(und schließt sie natürlich rechtzeitig, um Dateilcks zu vermeiden). Nach einiger Untersuchung sehe ich, dass der Festplatten-Cache von Windows nur etwa 100 MB RAM verwendet, obwohl 8 GiB verfügbar sind. Ich habe versucht, die Cache-Größe mit dem CacheSet- Tool zu erhöhen, aber alle von mir angegebenen Werte werden als außerhalb des gültigen Bereichs betrachtet .

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

18
Woher haben Sie die Information, dass nur 100 MB für den Festplatten-Cache verwendet werden? Von dem, was ich weiß, verwendet Windows standardmäßig den gesamten freien Speicher für das Zwischenspeichern von Festplatten. Ein Wert von nur 100 MB erscheint mir wie ein Minimalwert. Robert vor 13 Jahren 3
Ein Teil des Problems könnte Java und JVM sein. Es gibt unzählige Optionen, um die JVM zu optimieren: http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix64.60%2Fdiag % 2Anhänge% 2Fcmdline% 2Fcommands_jvm.html. Ich denke, Ihre beste Wette ist es, es einfach in C ++ oder FreeBASIC zu schreiben (beide kompilieren zu nativem Code und sind nur durch das Betriebssystem eingeschränkt). Nathan Adams vor 11 Jahren 1

3 Antworten auf die Frage

4
Soren

Superfetch speichert nicht die gesamte große Datei, sondern nur die Teile, auf die zugegriffen wird. Um auf diese Datei zuzugreifen, muss der Datenträger noch gelesen werden. Ein Festplatten-Cache bei 210 MB wie meiner kann alle kleinen Dateien in Windows zwischenspeichern. Und die Leistung ist spürbar. Ich bezweifle jedoch, dass dies Auswirkungen auf schnellere Systeme haben würde.

Was ist Superfetch und wie hängt es mit dieser Frage zusammen? jpaugh vor 7 Jahren 2
4
Vladimir Panteleev

Ich habe versucht, die Cache-Größe mit dem CacheSet-Tool zu erhöhen, aber alle von mir angegebenen Werte werden als außerhalb des gültigen Bereichs betrachtet.

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

Ich habe auch bemerkt, dass CacheSet einige 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 für dieselbe API geschrieben, mit dem Cache-Größen über 4 GB eingestellt werden können: http: / /blog.thecybershadow.net/2012/12/14/64-bit-cacheset/

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

0
Jan Schejbal

Ich weiß, das ist alt, aber für andere, die dieses Problem haben: Sie müssen CacheSet manuell mit Administratorrechten ausführen. Wenn Sie dies nicht tun, wird der OutOfRange-Fehler angezeigt. es wird NICHT automatisch nach Privilegien gefragt.