Ich führe Visual Studio 2010 auf einem 32-Bit-System aus und stoße regelmäßig auf Probleme mit dem Verlust des virtuellen Speichers, sodass ich in VS keine Dinge wie Kopieren / Einfügen mehr ausführen kann.
Ich habe einige Optionen überprüft und in der Microsoft-Zeile wurde angezeigt, dass weniger Erweiterungen geöffnet sind. Wenn dies nicht funktioniert hat, verwenden Sie den Befehl bcedit / set IncreaseUserVA 3072.
Das schien das Problem zu mildern, aber nach ungefähr einem Tag der Nutzung sagt mir Windows plötzlich, dass mir der Speicherplatz ausgeht - auf einem Laufwerk mit über 100 GB verfügbar. Zum Beispiel würde es aufhören, eine Datei zu kopieren, und sagen, dass es keinen Platz zum Kopieren gibt. Das Klicken auf "Wiederholen" wäre jedoch erfolgreich. Viele andere Programme, die Dinge auf die Festplatte schrieben, fielen regelmäßig um. (Einschließlich Skype ... warum haben Sie die ganze Zeit auf die Festplatte geschrieben, Skype?!)
Ich habe chkdsk ausgeführt und andere grundlegende Überprüfungen durchgeführt, bevor ich zu dem Schluss kam, dass meine Konfigurationsänderung verantwortlich sein muss. Glücklicherweise hat das Wiederherstellen der Standardeinstellung funktioniert und ich bin jetzt wieder in Aktion.
Die meisten Artikel (mit Ausnahme von Microsoft) auf IncreaseUserVA sagen "Verwendung auf eigenes Risiko", und ich habe es eindeutig getan und verloren. Aber kann jemand erklären, warum dieses Verhalten gezeigt wurde / was mit einer scheinbar legitimen Änderung der Windows 7-Konfiguration so schief gehen kann?
Für die Aufzeichnung - der Computer war ein Dell Vostro-Laptop mit einem 260 GB / 5400 U / min-Laufwerk, 3,2 GB (effektivem) RAM, auf dem Windows 7 mit allen Updates vor SP1 ausgeführt wurde.
quelle
Antworten:
Windows partitioniert den verfügbaren 4 GB Adressraum auf einem 32-Bit-System in zwei Hälften, sodass der Kernel 2 GB und das Programm 2 GB erhält (es wird virtualisiert, sodass jedes Programm 2 GB erhält). Der Befehl "bcedit / set IncreaseUserVA 3072" ändert die Partitionierung so, dass jedes Programm 3 GB und der Kernelspeicher nur 1 GB erhält. Meistens funktioniert das gut, aber wie Sie bemerkt haben, können Sie in Schwierigkeiten geraten. Es ist normalerweise ein Treiber, der im Kernelraum ausgeführt wird, der hart codiert wurde, um anzunehmen, dass 2 GB Adressraum verfügbar sind, was die Probleme verursacht, wenn versucht wird, den 2 GB Adressraum zu verwenden, ohne sich die Mühe zu machen, zu prüfen, ob dies möglich ist.
quelle
Wenn Sie über 8 GB RAM verfügen und einen größeren Benutzeradressraum benötigen, ist die Installation des Windows 2003-Servers die beste Lösung. Es sind keine Optimierungen erforderlich und Ihre 32-Bit-Apps erhalten jeweils 4 GB Adressraum. Es gibt einige Treiber, die dies nicht mögen, und deshalb aktiviert MS dies auf dem Desktop-Betriebssystem nicht. Die Abstürze, die durch einen Treiber verursacht werden, der dies nicht unterstützt, sind unvorhersehbar und schwer zu diagnostizieren. Sie treten hauptsächlich bei Treibern auf, die nicht in der Serverumgebung verwendet werden.
Es ist möglich, den Vista / Win7-Kernel zu ändern und diesen als Option zum Startmenü hinzuzufügen, um denselben Speicher zu erhalten, der in den 32-Bit-Server-Editionen verfügbar ist:
www.geoffchappell.com/notes/windows/license/memory.htm
Es gibt einen vorgefertigten Patch, der dieses Zeug macht, aber ich habe es nicht getestet und es gibt keine Quelle dafür ...
quelle
Ich habe IncreaseUserVa gelegentlich auf 3g gesetzt, um ein großes Projekt zum Kompilieren zu bringen. Ich stelle fest, dass das System beim Aufwachen sehr instabil wird, wenn es in den Ruhezustand wechselt. Server halten normalerweise keinen Ruhezustand, denke ich.
quelle