it-swarm.com.de

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

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 handelt sich um ein Notebook 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?

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

17
mattycfp

wenn dies hilft, beschreibt Resource Monitor alle anderen RAM als "Standby".

"Standby" RAMwirdverwendet. Es wird als Seiten-Cache verwendet (es enthält Seiten, die kürzlich von allen Prozessarbeitssätzen verloren gegangen sind, d. H. Seitenfehler, die behoben werden können, ohne auf die Festplatte zuzugreifen) 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, bei demvon der Festplatte gelesen werden muss, müssen diesem Prozess neue physische Seiten zugewiesen werden, und diese können bei Bedarf abgerufen werden aus der Standby-Liste. (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 mit dem Befehlszeilentool testlimit, einem der in den Experimenten inWindows verwendeten Tools, dazu zwingen, mehr RAM in den Status "in Verwendung" zu versetzen Interna. 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 mit großen Adressen verknüpft, sodass die 32-Bit-Version bis zu 3 GiB auf einem 32-Bit-Computer zuweisen kann, der mit/3GB gestartet wurde, bis zu 4 GiB auf einem 64-Bit-Computer.

c:\> testlimit -? gibt hilfe.

c:\> testlimit -d 4 -c 512 versucht, 2 GiB prozessprivaten virtuellen Adressraum in 512 Zuordnungen von jeweils 4 MiB zuzuweisen. Dies sollte auf einem 64-Bit-Computer problemlos funktionieren. Auf einer 32-Bit-Maschinenot, die mit/3GB gebootet wurde (die meisten sind es nicht), kann es zu einem früheren Zeitpunkt zu einem Fehler kommen. wie das Programm selbst, alle DLLs usw.), so dass nicht ganz alle 2 GiB für das Programm verfügbar sind, um sie zuzuweisen.

In beiden Fällen wird der "verfügbare" Arbeitsspeicher verringert und der "in Verwendung" befindliche Arbeitsspeicher erhöht., jedoch nicht unbedingt 2 GiB wertweil es keine Garantie dafür gibt, dass das Betriebssystem alle 2 GiB im Prozess-Private-Working-Set belässt. Selbst wenn dies kurzfristig der Fall sein sollte, kann es sein, dass die Verarbeitungsmenge später abnimmt, wenn das Betriebssystem entscheidet, dass "hm, Sie machen eigentlich nichts damit, andere Prozesse brauchen es mehr", und es ausblättert.

Erhöhen Sie die Größe der Zuweisung "Chunks" zu sehr, und verringern Sie die Anzahl der Chunks entsprechend. Dies wird wahrscheinlich früher fehlschlagen, da jede Zuweisung praktisch zusammenhängend sein muss. z.B. Versuchen Sie, sieben 512-MiB-Chunks in einem Adressraum mit 4 GiB 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 wirdnotzu einer merklichen Verringerung des "verfügbaren" RAM führen.

(Die Option d(irty) bezieht ihren Namen aus dem "Dirty-Page-Bit" im x86/x64-Seitentabelleneintrag, der gesetzt wird, wenn auf die entsprechende virtuelle Seite mit einem "Modify" -Operanden zugegriffen wird Das bedeutet, dass der Inhalt der Seite geändert wurde. Dies ist ein Hinweis von Windows, dass der Inhalt der Seite irgendwo gespeichert werden muss, bevor die Seite für einen anderen Zweck verwendet werden kann. "Dirty" -Bitsatz gehen sofort nach der Räumung in die "Liste der geänderten Seiten"; von dort aus schreibt Windows sie in die entsprechenden Backing Stores.)

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 GiB (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) verwenden, nicht nur d (irty). Wenn Sie dieses Limit überschreiten, werden Sie feststellen, dass Popups oder ähnliches mit dem Hinweis "System hat zu wenig Speicher" angezeigt werden. Die Lösung besteht natürlich darin, mehr RAM hinzuzufügen und/oder die Einstellungen für Auslagerungsdateien zu erhöhen.

27
Jamie Hanrahan

Windows kann so konfiguriert werden, dass die Verwendung von RAM eingeschränkt wird. Ich weiß nicht, wie oder wer diese Einstellung auf Ihrem Laptop konfiguriert hätte, aber Sie sollten Folgendes überprüfen:

Max Ram Setting

Dieser Artikel enthält weitere Details, aber das Aufrufen des obigen Dialogfelds ist einfach:

  1. Klicken Sie auf das Startsymbol und geben Sie msconfig.exe in das Suchfeld ein

    how to launch msconfig

  2. Starten Sie msconfig.exe, klicken Sie auf die Registerkarte Boot und dann auf die Schaltfläche Advanced Options....

    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 vollständig, damit Windows alle RAM verwendet, die Sie haben. Ich würde definitiv BEIDE Optionen ausprobieren.

    maximum ram setting

17
misha256

Sie können SysInternals RAMMap verwenden, um genau zu sehen, was der PC mit Ihrem physischen RAM macht. Andere Tools wie Task-Manager oder Prozess-Explorer konzentrieren sich hauptsächlich auf 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.

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
Thomas Weller

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 Tutorials 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 Material in die Auslagerungsdatei geladen wird.

Eine lustige Sache könnte so etwas 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 eine Exe und beobachten Sie, wie der Speicherverbrauch steigt. Wenn Sie mehr als 2 GB Arbeitsspeicher benötigen, 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 Speicherplatz verbraucht wird, wie Sie möchten. Wenn Sie einen Wert über dem Wert Ihres Systems einstellen, stürzt das System wahrscheinlich ab (nicht getestet, daher mit Vorsicht verwenden).

5
XtrmJosh

Zitat aus einem sehr guten Artikel zum Thema:

Mehr Speicher erhöht die Verarbeitungsgeschwindigkeit [eines Computers] nicht wirklich. Das kann nur eine schnellere CPU.

Und meiner Erfahrung nach ist das im Allgemeinen absolut richtig. Wenn Sie nicht viele Programme gleichzeitig ausführen und , haben diese Programme erhebliche Anforderungen an RAM, und Sie werden kaum einen echten Nutzen davon sehen, wenn Sie mehr als haben 4 GB RAM.

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 hinzufügen, sehen Sie möglicherweise eine Auslastung von> 4 GB.

5
misha256

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 sind. Sie müssen den Test mit einem 64-Bit-Programm wiederholen und seine Geschwindigkeit mit 4 GB vorhandenem RAM und erneut mit 8 GB vorhandenem RAM überprüfen, wenn Sie dies möchten Ergebnisse. 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 folgt, * 32, handelt es sich um ein 32-Bit-Programm.

1
milesrf

Holen Sie sich den Explorer (procexp) von Sysinternals . Es verfügt über ein Ressourcendiagramm und kann die Speichernutzung pro Prozess anzeigen, viel besser als in der 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 , Sie scheinen mehr zu benötigen, begrenzen aber die physische Nutzung.

Die meisten profanen Programme verwenden eine andere Arbeitsmenge , die die Nachfrage niedrig hält. Wenn ein Programm eine Tonne Speicher zuweist, verwendet es nicht wirklich alles gleichzeitig ...

Windows verschiebt Seiten aus Ihrem Programm aggressiv in eine Liste, in der sie verfügbar sind. . Wenn ein Seitenfehler auftritt, wird er aus der Liste zurückgezogen, ohne dass er aus der Auslagerungsdatei geladen werden muss. Das Standby könnte diese 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.

0
JDługosz