Frage Computer verwendet nicht mehr als 4 meiner 8 GB RAM ...? (64-Bit Computer)


Vor kurzem, um meinen Computer zukunftssicher zu machen, habe ich über meine ursprünglichen 4 GB Speicher hinzugefügt. Ich habe den Gesamtspeicher auf 8 GB gebracht, und ich habe keine merkliche Änderung der Geschwindigkeit - auch wenn es sollte. Ich ging in den Task-Manager und sah, dass mein Computer nicht mehr als 4 GB Arbeitsspeicher belegte, obwohl sowohl Chrome als auch Firefox mit jeweils 20 Tabs geöffnet waren.

Nach der Untersuchung war alles, was jeder vorgeschlagen hatte, zu überprüfen, wie viel Speicher nutzbar war. Seltsamerweise sagt es, dass ich 8GB Speicher habe und 7.74GB benutzbar ist.

Die Spezifikationen für mein HP Pavilion g7-1075dx finden Sie hier. Es ist ein Notebook mit Windows 7 Home Premium 64-Bit mit AMD Phenom II.

Meine Hauptfrage ist: Warum verwendet mein Computer mit meinem 64-Bit-Computer nicht mehr als 4 GB Arbeitsspeicher, selbst wenn mehr als 7 Arbeitsspeicher verfügbar ist?

EDIT: Wenn es hilft, beschreibt Resource Monitor alle anderen RAM als "Standby"


17
2017-08-31 22:33


Ursprung


Wie können Sie sehen, dass es nicht mehr als 4 GB verwendet? Hast du meine anderen Programme versucht, Speicher zu testen oder zu verwenden? Chrome und Firefox sind nicht so speicherintensiv ... - Mokubai♦
Bislang hat noch niemand erwähnt, dass mehr RAM zur Verfügung steht nicht Machen Sie einen Computer per se schneller. Das einzige Mal, dass Sie eine spürbare Geschwindigkeitsschwäche bemerken, ist, wenn Ihre Arbeitslast so viel RAM verbraucht, dass Windows kontinuierlich auf die Festplatte puffern muss - in diesem Fall kann das Hinzufügen von mehr RAM definitiv die Dinge beschleunigen. Aber 98% der Leute tun nicht die Art von Dingen, die mehr als 4 GB RAM benötigen, und folglich werden sie keinen spürbaren Vorteil darin haben, all das zusätzliche RAM zu haben. - misha256
@mattycfp Es gibt eine andere Möglichkeit, die ich kenne, die Windows RAM-Nutzung begrenzen kann. Ist es möglich, dass Sie, jemand anderes oder irgendeine Software die RAM-Nutzung limitiert? Schau dir diesen Artikel an und folge den Anweisungen: helpdeskgeek.com/windows-7/... - misha256
Firefox hat eine Beschränkung von 2 GB auf alle Tabs / Prozesse, Chrome könnte es auch. Dies ist zusätzlich zum normalen pro Prozesslimit. - JamesRyan
Das Öffnen von Firefox und Chrome mit jeweils 20 Tabs ist definitiv nicht genug. Ich habe Firefox geöffnet mit 157 Tabs, es verbraucht nicht einmal 1 GB RAM. Überprüfen Sie, während Sie die Spiele ausführen. Die Antwort von Jamie Hanrahan ist sehr gut und detailliert. Für weitere Informationen lesen Sie den Blog-Beitrag von Mark Russinovich über die Grenzen von Windows. Verknüpfung. - sbecker


Antworten:


Wenn es hilft, beschreibt der Ressourcenmonitor den gesamten anderen RAM als "Standby"

"Standby" RAM ist in Benutzung. Es wird als Seitencache verwendet (es enthält Seiten, die kürzlich von allen Prozessarbeitssätzen verloren gegangen sind, d. H. Seitenfehler zu diesen können gelöst werden, ohne auf Platte zu gehen) und auch für proaktives Dateicachen durch SuperFetch.

Es wird als "verfügbar" angesehen, da Standby-Seiten nicht auf die Festplatte geschrieben werden müssen, bevor sie einer anderen Verwendung zugewiesen werden können. Zum Beispiel wenn ein Prozess einen Seitenfehler verursacht tut Lesevorgänge von der Festplatte erfordern, müssen diesem Vorgang neue physische Seiten zugeordnet werden, die bei Bedarf aus der Standby-Liste übernommen werden können. (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.

Sie können Ihr System zwingen, mit dem Befehlszeilentool mehr RAM in den Status "In Verwendung" zu versetzen testlimit, eines der Werkzeuge in den Experimenten in Windows Interna. Es gehört nicht zu den regulären sysinternals-Tools, ist aber mit ihnen verbunden. finde es Hier auf der Website sysinternals. Der Download ist eine Zip-Datei, die zwei Versionen enthält, testlimit.exe und testlimit64.exe. Beide sind mit großen Adressen verbunden, so dass die 32-Bit-Version bis zu 3 GiB auf einem 32-Bit-Rechner mit / 3GB, bis zu 4 GiB auf einem 64-Bit-Rechner, bereitstellen kann.

c:\> testlimit -? gibt Hilfe.

c:\> testlimit -d 4 -c 512 wird versuchen, 2 GiB Prozess-privaten virtuellen Adressraum in 512 Zuweisungen von jeweils 4 MiB zuzuweisen. Dies sollte auf einem 64-Bit-Rechner funktionieren. Auf einer 32-Bit-Maschine nicht booted mit / 3GB (die meisten sind nicht) es könnte ein Fehler früher ein bisschen b / c gibt es schon ein paar MiB von Zeug in den Prozess (wie das Programm selbst, alle DLLs, etc.), so dass es nicht ganz 2 ist GiB zur Verfügung für das Programm zu reservieren.

In beiden Fällen wird es eine Verringerung des "verfügbaren" RAM und eine Erhöhung des "In use" RAM geben. aber nicht unbedingt 2 GiB wert weil es keine Garantie gibt, dass das OS alle 2 GiB in dem Prozess privaten Arbeitssatz belassen wird. Selbst wenn dies kurzfristig geschieht, könnte es sein, dass das Prozess-Working-Set später abnimmt, wenn das Betriebssystem entscheidet "hm, du machst eigentlich nichts damit, andere Prozesse brauchen es mehr" und paginiert es.

Erhöhen Sie die Größe der Zuordnungs "Chunks" zu sehr, reduzieren Sie die Anzahl der Chunks entsprechend, und es wird wahrscheinlich früher ausfallen, da jede Zuweisung virtuell zusammenhängend sein muss. z.B. Versuchen Sie 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 (iirty) verwenden, weist das Programm den virtuellen Raum zu, referenziert diesen jedoch nie. Dieser Wille nicht zu einer nennenswerten Verringerung des "verfügbaren" RAM führen.

(Die Option d (irty) hat ihren Namen vom Bit "dirty page" im x86 / x64-Seitentabelleneintrag, der festgelegt wird, wenn auf die entsprechende virtuelle Seite mit einem Operanden "Modify" -Style zugegriffen wird, dh der Inhalt der Seite hat Der Hinweis von Windows, dass, wenn die Seite aus dem Prozess-Working-Set entfernt werden muss, ihr Inhalt irgendwo gespeichert werden muss, bevor die Seite für etwas anderes verwendet werden kann. Seiten mit dem "Dirty" -Bit werden gesetzt die "modifizierte Seitenliste" unmittelbar nach der Räumung; von dort schreibt Windows sie in ihre jeweiligen Hintergrundspeicher.)

Sie müssen genügend "commit" zur Verfügung haben, damit diese Tests wie oben beschrieben funktionieren (selbst für die Option l (eak), obwohl diese Option keine nennenswerte Menge an RAM verwendet). Insbesondere sollte Ihr "commit limit" mindestens 2 GiB (oder wie viel Sie auch zuweisen) höher sein als die "commit charge", bevor Sie Ihren Test starten. Beachten Sie, dass dies auch dann gilt, wenn Sie die Option l (eak) und nicht nur d (irty) verwenden. Wenn Sie auf dieses Limit stoßen, sehen Sie, dass die Popup-Liste "System läuft nicht mehr im Speicher" oder ähnlich aussieht. Die Lösung besteht natürlich darin, mehr Arbeitsspeicher hinzuzufügen und / oder die Einstellungen für die Auslagerungsdatei zu erhöhen.


27
2017-09-01 01:24





Windows kann tatsächlich konfiguriert werden, um die RAM-Nutzung zu begrenzen. Ich weiß nicht, wie oder wer diese Einstellung auf Ihrem Laptop konfiguriert hätte, aber Sie sollten Folgendes überprüfen:

Max Ram Setting

Dies Artikel hat mehr Details, aber zu dem obigen Dialogfeld zu gelangen ist einfach:

  1. Klicken Sie auf das Start-Symbol und geben Sie ein msconfig.exe in das Suchfeld

    how to launch msconfig

  2. Starten Sie msconfig.exe, klicken Sie auf Boot Klicken Sie auf die Registerkarte Advanced Options... Knopf, und du bist in:

    msconfig boot settings dialog

  3. Geben Sie entweder einen sinnvollen Wert ein, z. 8192 für 8 GB RAM, oder Deaktivieren Sie das Kontrollkästchen Maximum memory Kontrollkästchen, das Windows dazu veranlassen sollte, den gesamten von Ihnen verwendeten RAM zu verwenden. Ich würde auf jeden Fall beide Optionen ausprobieren.

    maximum ram setting


17
2017-09-01 00:22



@ misha256 - Zutiefst verwirrt durch eine Antwort, die ursprünglich sehr wenig Inhalt hatte, und ja, wenn jemand anderes eine der Antworten eingereicht hätte, hätte ich nicht einmal zweimal über die Antworten nachgedacht (außer vielleicht die Hilfsbereitschaft von ihnen etwas härter zu beurteilen). - Ramhound
@ misha256 Wenn dies das Problem war, dann würde OP nicht etwa 4 GB im Einsatz und etwa 4 GB Standby sehen. Der RAM, der von dieser Option ausgeschlossen wird, wird nicht in "Standby" angezeigt; OP würde auch nicht "8GB Speicher sehen, und 7.74GB ist verwendbar". (die 256 MB nicht "brauchbar" wird beispielsweise aufgrund der Videokarte erwartet). - Jamie Hanrahan


Sie können verwenden SysInternals RAMMap um genau zu sehen, was der PC mit Ihrem macht physisch RAM. Andere Tools wie Task-Manager oder Process Explorer konzentrieren sich hauptsächlich auf virtuell Speicher und sind nicht die besten Werkzeuge für diese Situation.

Auf der Registerkarte "Anzahl verwenden" sehen Sie möglicherweise, dass große Teile nicht verwendet werden, während Sie nicht viele Anwendungen geöffnet haben.

SysInternals RAMMap

Dies bedeutet nicht, dass Ihr PC jemals in diesem Zustand bleiben wird. Öffnen Sie einfach ein paar Programme und der Speicher wird verwendet.


10
2017-09-01 06:46



Der Begriff "virtuelles RAM" sollte nicht verwendet werden. Außerdem würde ich nicht sagen, dass diese anderen Tools hauptsächlich auf virtuellen Speicher ausgerichtet sind - sie haben viele Zähler verfügbar, die die physische Speichernutzung zeigen. - Jamie Hanrahan


Zitat von a sehr guter Artikel zum Thema:

Mehr Speicher erhöht die Verarbeitungsgeschwindigkeit eines Computers nicht. Nur eine schnellere CPU kann das tun.

Und nach meiner Erfahrung ist das im Allgemeinen absolut richtig. Es sei denn, Sie führen viele Programme gleichzeitig aus und Diese Programme haben erhebliche RAM-Anforderungen, Sie werden kaum einen echten Vorteil mit mehr als 4 GB RAM sehen.

Die Leute scheinen nicht zu wissen, dass 4 GB eine Menge RAM ist. Windows mehr zu nutzen, erfordert Aufwand. Du wirst viele öffnen müssen anders Apps und in diesen Apps öffnen Sie einige große Dateien. Werfen Sie ein paar Tabs von YouTube-Videos auf und Sie werden möglicherweise anfangen,> 4GB-Nutzung zu sehen.


5
2017-08-31 23:43



@mattycfp Ich habe gerade 16 Windows auf meinem 4GB Rechner geöffnet, darunter Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (ein bekannter RAM-Hog), Photoshop, Media Player, VLC, MPC-HC, plus einige andere zufällige Apps, und ich wechsle zwischen ihnen Sachen zu tun, Dokumente zu laden, Videos zu spielen, alles, und meine tatsächliche RAM-Nutzung ist 2.2GB UND die Maschine ist SCHNELL wie es je war. Siehst du, 4GB macht das ganz einfach ;-) - misha256
@mattycfp 120 Windows von FF? Es ist wahrscheinlicher, dass Sie Ihre CPU als RAM voll auslasten, besonders auf einem Laptop. Vergessen Sie auch nicht, FF ist eine 32-Bit-App, und mehrere FF-Fenster teilen tatsächlich einen 32-Bit-Prozess, also FF ist eigentlich ziemlich begrenzt, es kann nur 2 GB Ihrer insgesamt 8 GB verwenden. Deshalb musst du viel laufen anders Apps gleichzeitig testen, wie Windows Ihren Arbeitsspeicher verwendet, nicht nur 120 Windows von FF. - misha256
@ misha256 Du werden Sehen Sie Leistungszuwächse, wenn Ihr System ständig Speicher austauscht. Wenn der Speicherdruck ansteigt, steigt das Paging und das System verlangsamt sich. Es ist nicht so, dass das Hinzufügen von Speicher dich schneller machen lässt, aber es werden verhindern Sie eine Verlangsamung, vor allem, wenn die betreffende Software in ihren Systemanforderungen eine bestimmte Anzahl von Paging-Vorgängen voraussetzt. Dieser Artikel schien nicht viel über Paging zu erwähnen. Paging ist, was Sie verlangsamt. - phyrfox
@ Misha256 Ich habe IRC, Spotify, Notepad ++, Chrome und Task-Manager geöffnet und ich verwende 3.02GB von insgesamt 4GB :( Öffnen von 3 VS2013 Instanzen (die ich bei der Arbeit tendiere) und das maximiert mich. Es ist ein bisschen leichter zu erreichen 4GB Grenze als Sie denken, aber erfordert praktisch einen Power-User. - Thebluefish
@ misha256 Korrektur: FF ist Large-Address-aware und kann bis zu 3GB in einem 32-Bit-Prozess adressieren. Die 64-Bit-Version von FF (derzeit in der Beta-Version für Windows) kann offensichtlich weit mehr ansprechen. Ich habe auch das Gefühl, dass Sie ein bisschen zu viel verallgemeinern, wenn Sie sagen, dass es schwierig ist, mehr als 4 GB RAM zu nutzen (resident private working set); Es hängt wirklich sehr davon ab, was du machst und wie viel du offen hältst. Meine Baseline-Nutzung übersteigt diese bereits. - Bob


Windows macht einige clevere Sachen wie Paging-Speicher. Es kann sein, dass es die meisten der Aufgaben, die Sie tun, als unnötig sieht und beschließt, eine Menge Dinge in die Auslagerungsdatei zu packen, so dass es so aussieht, als würde es nur tun, um nicht all Ihren RAM zu verbrauchen. Sie könnten diese Theorie testen, indem Sie das Paging deaktivieren, obwohl dies keine Sache ist, die Sie dauerhaft konfigurieren sollten. Es gibt viele Tutorials im Internet, um dies zu tun. Eines der Dinge, die es tut (sogar auf meinen 24GB und 64GB Maschinen) ist es, die Paging-Regeln viel strikter zu machen, wenn es ungefähr 50%, 80% und 90% Verbrauch erreicht (diese Zahlen sind ungefähr). Ich habe bemerkt, dass in jeder dieser Phasen eine Menge Zeug in die Auslagerungsdatei geladen wird.

Eine lustige Sache zu tun könnte etwas in der Art sein:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

Das ist ein C-Code. Holen Sie sich GCC oder einen Compiler, machen Sie sich selbst eine exe und beobachten Sie, wie Ihr Speicherverbrauch steigt. Wenn Sie mehr als 2 GB Arbeitsspeicher belegen möchten, müssen Sie sie kompilieren und als 64-Bit-Prozess ausführen. Wenn Sie in dieser Art von Sache sind, könnte es ein interessantes Experiment sein, wenn nichts anderes :)

Edit: Ich wollte nur wissen, dass das Programm damit nicht stirbt. Ich habe es aus irgendeinem vorherigen Code bearbeitet, da ich nicht sicher bin, dass anderer Code funktioniert hätte (der Speicher würde ausgelagert werden, was dazu führen würde, dass kein Speicher verbraucht 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, die das Programm verbrauchen soll, angepasst, so dass Sie einstellen können, dass es so viel verbraucht, wie Sie möchten. Wenn Sie etwas über dem einstellen, was Ihr System hat, wird es wahrscheinlich zum Absturz führen (nicht getestet, also mit Vorsicht verwenden)


5
2017-08-31 23:10



Ich wünschte, ich könnte es kompilieren, aber mein Internet korrumpiert jeden Download, den ich versuche: U - mattycfp
@mattycefp Sie können also nicht mehr als 4 GB RAM in Ihrem Betriebssystem verwenden, und all Ihre Downloads sind weiterhin korrumpierend? Zeit zum (ein) WIPE die Festplatte und führen Sie eine neue Betriebssysteminstallation aus, oder (b) Wirf den Laptop in den Mülleimer und besorge dir schon einen passenden. - misha256
Das angebotene Programm weist 2 GB virtuellen Speicher zu, und zwar eine Seite nach der anderen, was dazu führt, dass jede Seite unmittelbar nach ihrer Zuweisung in den RAM gestoßen wird. Aber das garantiert nicht, dass Windows alles gleichzeitig im Arbeitsspeicher hält. Da das Programm nicht wiederholt auf alle VM zugreift, können die zuerst zugewiesenen Seiten ausgelagert werden. Sie können den gleichen Effekt wie das Programm mit dem Windows-Interna-Tool "testlimit", Option -d, erhalten. - Jamie Hanrahan
@ Mattycfp Wenn das der Fall ist, möchten Sie vielleicht sehen, dass der RAM nicht fehlerhaft ist ... Wird jede Datei, die Sie herunterladen, irgendwie beschädigt? Es gibt auch manchmal Probleme mit inkompatiblen Sticks, deshalb sollten Sie das Handbuch des Motherboards überprüfen und bestätigen, dass Ihr RAM nach diesen Anweisungen organisiert ist (die Steckplätze werden entweder mit 1 oder 2 oder 1-4 nummeriert, und normalerweise müssen 1 und 3 mit dem gleichen "Typ" oder "Marke und Modell" von RAM, wie 2 und 4). & Ja, dieses Programm sollte 2 GB verbrauchen, das durch Ändern der Zeile bearbeitet werden kann int gb = 2; // memory to consume in GB - Ändere einfach die 2. - XtrmJosh
Warum haben Sie gb vom Typ int deklariert, wenn es nur für unsigned long verwendet wird? Du behandelst das genauso und macht einen gemischten Vergleich zwischen dem int und dem Cast-to-Unsigned. Also mache ich auch lange ohne Vorzeichen. - JDługosz


Verwenden Sie ein 32-Bit-Programm, um zu testen, wie schnell der Computer ausgeführt wird? Wenn dies der Fall ist, beachten Sie, dass 32-Bit-Adressen nur auf 4 GB des RAM zeigen können, auch wenn Sie mehr RAM haben. Sie müssen den Test mit einem 64-Bit-Programm wiederholen und die Geschwindigkeit mit 4 GB RAM und 8 GB RAM überprüfen, wenn Sie brauchbare Ergebnisse wünschen. Außerdem muss es ein 64-Bit-Programm sein, das mehr als 4 GB Arbeitsspeicher verwenden kann, um schneller zu laufen - nicht alle von ihnen können. Um festzustellen, ob ein Programm 32-Bit ist, starten Sie das Programm und lassen Sie es laufen, dann starten Sie den Windows Task-Manager, klicken Sie auf Prozesse, und scrollen Sie nach unten, bis Sie das Programm von Interesse finden. Wenn auf den Namen des Programms in der Spalte Image Name ein Leerzeichen gefolgt von * 32 folgt, handelt es sich um ein 32-Bit-Programm.


1
2018-01-30 05:08



Wenn Sie mehrere 32-Bit-Programme ausführen, kann ihre gesamte RAM-Nutzung problemlos 8 GB erreichen. - Jamie Hanrahan


Bekommen Process Explorer (procexp) von Sysinternals. Es verfügt über ein Ressourcen-Diagramm und kann die pro-Prozess-Speicherbelegung anzeigen, viel besser als die Lagerprozessansicht.

Sie können sich den physischen RAM-Einsatz gegenüber dem virtuellen SPQCE-Betrieb ansehen, um zu sehen, ob Sie nicht alles verwenden oder Sie scheinen mehr zu brauchen, begrenzen aber die physische Nutzung.

Die meisten profanen Programme verwenden ein anderes Workingset Größe, die die Nachfrage niedrig hält. Wenn ein Programm eine Tonne Speicher zuweist, ist es nicht wirklich verwenden alles gleichzeitig ...

Windows bewegt aggressiv Seiten von Ihrem Programm in eine Liste, in der sie verfügbar sind. aber Wenn ein Seitenfehler auftritt, wird er aus der Liste zurückgezogen, ohne ihn aus der Auslagerungsdatei laden zu müssen. Das bereithalten könnte diese einschließen. Unterschiedliche Werkzeuge beschriften verschiedene Sets auf unterschiedliche Weise.

Sie könnten versuchen, die Auslagerungsdatei auszuschalten, zumindest für diesen Test. Dies wird dazu führen, dass der Datenspeicher tatsächlich verwendet wird. Obwohl procexp genug sein könnte, um das klar zu sehen.


0
2017-09-01 04:47