Kürzlich habe ich, um meinen Computer zukunftssicher zu machen, zusätzlich zu meinen ursprünglichen 4 GB Arbeitsspeicher hinzugefügt. Ich habe den Gesamtspeicher auf 8 GB erhöht und keine merkliche Änderung der Geschwindigkeit festgestellt - auch wenn dies der Fall sein sollte. Ich habe mir den Task-Manager angesehen und festgestellt, dass auf meinem Computer NICHT mehr als 4 GB Arbeitsspeicher verwendet werden, auch wenn Chrome und Firefox mit jeweils 20 Registerkarten geöffnet sind.
Nach der Recherche war alles, was jeder vorgeschlagen hatte, zu überprüfen, wie viel Speicher nutzbar war. Seltsamerweise heißt es, dass ich 8 GB Speicher habe und 7,74 GB verwendbar sind.
Die technischen Daten zu meinem HP Pavilion g7-1075dx finden Sie hier. Es ist ein Notebook-PC mit Windows 7 Home Premium 64-Bit mit AMD Phenom II.
Meine Hauptfrage lautet: Warum verwendet mein Computer mit meinem 64-Bit-Computer nicht mehr als 4 GB Arbeitsspeicher, auch wenn mehr als 7 verwendet werden können?
BEARBEITEN: wenn es hilft, beschreibt Resource Monitor den gesamten anderen RAM als "Standby"
Antworten:
"Standby" RAM wird verwendet. Es wird als Seiten-Cache verwendet (es enthält Seiten, die kürzlich von allen Prozessarbeitssätzen verloren gegangen sind, dh Seitenfehler, die behoben werden können, ohne auf die Festplatte zu gehen) und auch für das proaktive Datei-Cache von SuperFetch.
Es gilt als "verfügbar", da Standby-Seiten nicht auf die Festplatte geschrieben werden müssen, bevor sie einer anderen Verwendung zugewiesen werden können. Wenn ein Prozess auf einen Seitenfehler stößt, der das Lesen von der Festplatte erfordert, müssen diesem Prozess neue physische Seiten zugewiesen werden, und diese können bei Bedarf aus der Standby-Liste entnommen werden. (Dies ist nicht die erste Wahl, um Seiten für diesen Zweck zu finden, das wäre die freie und dann die Nullseitenliste.)
Mit anderen Worten, Ihr System funktioniert so, wie es sein sollte.
Mit dem Befehlszeilentool
testlimit
, einem der in den Experimenten in Windows Internals verwendeten Tools , können Sie Ihr System dazu zwingen, mehr Arbeitsspeicher in den Status "In Verwendung" zu versetzen . Es gehört nicht zu den regulären sysinternals-Tools, ist aber mit diesen verknüpft. Finden Sie es hier auf der Sysinternals-Site. Der Download ist eine Zip-Datei, die zwei Versionen enthält, testlimit.exe und testlimit64.exe. Beide sind für große Adressen ausgelegt, sodass die 32-Bit-Version auf einem 32-Bit-Computer, der mit / 3 GB gestartet wurde, bis zu 3 GB und auf einem 64-Bit-Computer bis zu 4 GB zuweisen kann.c:\> testlimit -?
gibt hilfe.c:\> testlimit -d 4 -c 512
Es wird versucht, 2 GB prozessprivaten virtuellen Adressraum in 512 Zuordnungen von jeweils 4 MB zuzuweisen. Dies sollte auf einem 64-Bit-Computer problemlos funktionieren. Auf einem 32-Bit-Rechner, der nicht mit / 3GB gebootet wurde (die meisten sind es nicht), kann es vorkommen, dass etwas früher ein Fehler auftritt (wie das Programm selbst, alle DLLs usw.) Für das Programm sind noch keine 2 GB verfügbar.In beiden Fällen wird der "verfügbare" Arbeitsspeicher reduziert und der "in Verwendung" befindliche Arbeitsspeicher erhöht, jedoch nicht unbedingt um 2 GB, da nicht garantiert werden kann, dass das Betriebssystem alle 2 GB im Prozess-Private-Working-Set belässt. Selbst wenn dies kurzfristig der Fall sein sollte, kann es sein, dass die Anzahl der Prozesse später abnimmt, wenn das Betriebssystem entscheidet, "hm, Sie machen eigentlich nichts damit, andere Prozesse brauchen es mehr" und es wird ausgeblendet.
Erhöhen Sie die Größe der Zuweisung "Chunks" zu sehr, und reduzieren Sie die Anzahl der Chunks entsprechend. Dies wird wahrscheinlich früher fehlschlagen, da jede Zuweisung praktisch zusammenhängend sein muss. Versuchen Sie beispielsweise, sieben 512-MiB-Chunks in einem 4-GiB-Adressraum zu finden, und Sie werden wahrscheinlich scheitern.
Wenn Sie die Option l (eak) anstelle von d (irty) verwenden, weist das Programm den virtuellen Speicherplatz zu, verweist jedoch niemals darauf. Dies wird nicht in nennenswertem Rückgang des „verfügbar“ RAM zur Folge hat .
(Die Option d (irty) hat ihren Namen vom "Dirty Page Bit" im x86 / x64-Seitentabelleneintrag, der gesetzt wird, wenn auf die entsprechende virtuelle Seite mit einem Operanden im "Modify" -Stil zugegriffen wird, dh, der Inhalt der Seite hat Dies ist ein Hinweis von Windows, dass der Inhalt der Seite, falls diese aus dem Prozessarbeitssatz entfernt werden muss, irgendwo gespeichert werden muss, bevor die Seite für einen anderen Zweck verwendet werden kann die "Liste der geänderten Seiten" unmittelbar nach der Räumung; von dort aus schreibt Windows sie in die entsprechenden Sicherungsspeicher.)
Damit diese Tests wie oben beschrieben ausgeführt werden können, muss ausreichend "Festschreiben" verfügbar sein (auch für die Option l (eak), obwohl für diese Option keine nennenswerte Menge an RAM verwendet wird). Insbesondere sollte Ihr "Festschreibungslimit" mindestens 2 GB (oder wie viel Sie zuteilen) höher sein als die "Festschreibungsgebühr", bevor Sie mit dem Test beginnen. Beachten Sie, dass dies auch dann zutrifft, wenn Sie die Option l (eak) und nicht nur d (irty) verwenden. Wenn Sie dieses Limit überschreiten, werden Sie feststellen, dass Popups oder ähnliches mit dem Hinweis "Das System hat zu wenig Arbeitsspeicher" angezeigt werden. Die Lösung besteht natürlich darin, mehr RAM hinzuzufügen und / oder die Einstellungen für Auslagerungsdateien zu erhöhen.
quelle
Windows kann so konfiguriert werden, dass die RAM-Nutzung eingeschränkt wird. Ich weiß nicht, wie oder wer diese Einstellung auf Ihrem Laptop konfiguriert hätte, aber Sie sollten Folgendes überprüfen:
Dieser Artikel enthält weitere Details, aber das Aufrufen des obigen Dialogfelds ist einfach:
Klicken Sie auf das Startsymbol und geben Sie es
msconfig.exe
in das Suchfeld einStarten Sie msconfig.exe, klicken Sie auf die
Boot
Registerkarte und dann auf dieAdvanced Options...
Schaltfläche. Sie befinden sich in:Geben Sie entweder einen sinnvollen Wert ein, z. B. 8192 für 8 GB RAM, oder deaktivieren Sie das
Maximum memory
Kontrollkästchen vollständig, damit Windows den gesamten verfügbaren RAM verwendet. Ich würde definitiv BEIDE Optionen ausprobieren.quelle
Sie können SysInternals RAMMap verwenden , um genau zu sehen, was der PC mit Ihrem physischen RAM macht. Andere Tools wie der Task-Manager oder der Prozess-Explorer konzentrieren sich hauptsächlich auf den virtuellen Speicher und sind nicht die besten Tools für diese Situation.
Auf der Registerkarte "Verwendungsanzahl" sehen Sie möglicherweise, dass große Teile nicht verwendet werden, obwohl Sie nicht viele Anwendungen geöffnet haben.
Dies bedeutet nicht, dass Ihr PC jemals in diesem Zustand bleiben wird. Öffnen Sie einfach ein paar Programme und der Speicher wird verwendet.
quelle
Zitat aus einem sehr guten Artikel zum Thema:
Und meiner Erfahrung nach ist das im Allgemeinen absolut richtig. Wenn Sie nicht viele Programme gleichzeitig ausführen und diese Programme erhebliche RAM-Anforderungen haben, werden Sie kaum einen echten Nutzen davon sehen, mehr als 4 GB RAM zu haben.
Die Leute scheinen nicht zu begreifen, dass 4 GB verdammt viel RAM ist. Es ist mühsam, Windows stärker zu nutzen. Sie müssen viele verschiedene Apps öffnen und in diesen Apps einige große Dateien öffnen. Wenn Sie ein paar Tabs mit YouTube-Videos einwerfen, sehen Sie möglicherweise eine Auslastung von> 4 GB.
quelle
Windows macht einige clevere Sachen wie Paging-Speicher. Möglicherweise werden die meisten Aufgaben, die Sie ausführen, als unnötig angesehen, und es wird beschlossen, eine Menge Daten in die Auslagerungsdatei zu schreiben, um zu vermeiden, dass der gesamte Arbeitsspeicher belegt wird. Sie können diese Theorie testen, indem Sie das Paging deaktivieren, obwohl Sie dies nicht permanent konfigurieren sollten. Es gibt viele Anleitungen im Internet, um dies zu tun. Unter anderem werden die Paging-Regeln bei einem Verbrauch von ca. 50%, 80% und 90% (bei diesen Zahlen handelt es sich um ungefähre Werte) verschärft (auch bei meinen 24-GB- und 64-GB-Computern). Ich habe bemerkt, dass in jeder dieser Phasen eine Menge Dinge in die Auslagerungsdatei geladen werden.
Eine lustige Sache könnte so etwas sein:
Das ist ein C-Code. Holen Sie sich GCC oder einen Compiler, machen Sie sich eine Exe und beobachten Sie, wie der Speicherverbrauch steigt. Wenn Sie mehr als 2 GB Arbeitsspeicher benötigen möchten, müssen Sie diesen als 64-Bit-Prozess kompilieren und ausführen. Wenn Sie so etwas mögen, könnte es ein interessantes Experiment sein, wenn nichts anderes :)
Bearbeiten: Ich wollte nur feststellen, dass das Programm damit nicht stirbt. Ich habe es von einem früheren Code bearbeitet, da ich nicht sicher bin, ob ein anderer Code funktioniert hätte (der Speicher würde ausgelagert, was dazu führt, dass kein Speicher belegt wird, lol). Der neue Code enthält eine Zeile.
int gb = 2; // memory to consume in GB
Wenn Sie die 2 ändern, wird die Menge an Speicher angepasst, die das Programm verbrauchen soll. Sie können also festlegen, dass so viel Speicher verbraucht wird, wie Sie möchten. Wenn Sie einen höheren Wert als den Ihres Systems einstellen, stürzt das System wahrscheinlich ab (nicht getestet, daher mit Vorsicht verwenden).quelle
int gb = 2; // memory to consume in GB
Verwenden Sie ein 32-Bit-Programm, um zu testen, wie schnell der Computer ausgeführt wird? Beachten Sie in diesem Fall, dass 32-Bit-Adressen nur auf 4 GB RAM verweisen können, selbst wenn mehr RAM vorhanden ist. Sie müssen den Test mit einem 64-Bit-Programm wiederholen und die Geschwindigkeit mit 4 GB RAM und erneut mit 8 GB RAM prüfen, wenn Sie nützliche Ergebnisse erzielen möchten. Außerdem muss es sich um ein 64-Bit-Programm handeln, das mehr als 4 GB Arbeitsspeicher benötigt, um schneller zu arbeiten - nicht alle können dies. Um festzustellen, ob es sich bei einem Programm um ein 32-Bit-Programm handelt, starten Sie das Programm und lassen Sie es laufen. Starten Sie dann den Windows Task-Manager, klicken Sie auf Prozesse und scrollen Sie nach unten, bis Sie das gewünschte Programm gefunden haben. Wenn auf den Namen des Programms in der Spalte "Bildname" ein Leerzeichen * 32 folgt, handelt es sich um ein 32-Bit-Programm.
quelle
Laden Sie den Process Explorer (procexp) von Sysinternals herunter . Es verfügt über ein Ressourcendiagramm und kann die Speichernutzung pro Prozess anzeigen, viel besser als die Bestandsanzeige.
Sie können die physische RAM-Nutzung im Vergleich zur Nutzung virtueller Speicherkapazitäten betrachten, um festzustellen, ob Sie einfach nicht alles verbrauchen oder anscheinend mehr benötigen, aber die physische Nutzung einschränken.
Die meisten weltlichen Programme verwenden eine andere Größe der Arbeitsmenge , um die Nachfrage gering zu halten. Wenn ein Programm eine Tonne Speicher reserviert ist es nicht wirklich mit all dem zugleich ...
Windows verschiebt Seiten aus Ihrem Programm automatisch in eine Liste, in der sie verfügbar sind. Tritt jedoch ein Seitenfehler auf, wird die Seite aus der Liste entfernt, ohne dass Sie sie aus der Auslagerungsdatei laden müssen. Im Standby-Modus sind diese möglicherweise enthalten. Unterschiedliche Werkzeuge kennzeichnen unterschiedliche Sets auf unterschiedliche Weise.
Sie können zumindest für diesen Test versuchen, die Auslagerungsdatei zu deaktivieren. Dadurch wird der Datenspeicher wirklich verwendet. Allerdings könnte procexp ausreichen, um dies klar zu erkennen.
quelle