Microsoft empfiehlt, den Schalter / 3Gb in Boot.ini zu verwenden, um mehr Speicher für einen Prozess zu erhalten, der auf einem 32-Bit-System ausgeführt wird.
Derzeit benötige ich viel Speicher für den Devenv- Prozess (Visual Studio 2008), da ich eine komplexe Lösung habe, die viele Projekte und Formulare enthält und in der Entwurfszeit viele Ressourcen verbraucht.
Ich möchte fragen, ob jemand weiß, was negative Aspekte der Verwendung von / 3Gb-Switch sind, ob es Umstände gibt, unter denen die Verwendung nicht empfohlen wird.
windows
performance
memory
32-bit
Bogdan_Ch
quelle
quelle
Antworten:
Auf einem Desktop-Computer gibt es wahrscheinlich keine Probleme. Der Kernel-Paged-Pool ist auf einem W2K3 / WXP-Computer mit dem / 3GB-Switch-Set kleiner. Dies ist wahrscheinlich kein Problem für einen Desktop-Computer, da Sie nicht nahe daran sein sollten, Ihren Kernel-Seitenpool zu erschöpfen. Wenn Sie auf einem Server den ausgelagerten Kernel-Pool erschöpfen, treten Probleme auf, und es ist viel wahrscheinlicher, dass Sie ihn erschöpfen können.
Hier einige Details zu den Überlegungen zum Kernelspeicher, die mit dem / 3GB-Switch verbunden sind. Wenn Sie wirklich möchten, können Sie den NT-Kernel-Debugger starten und Ihr System vor und nach der Änderung mit den Informationen in diesem Dokument profilieren: http://blogs.technet.com/markrussinovich/archive/2009/03/26 /3211216.aspx
quelle
Ihrem Kernel steht weniger Speicher zur Verfügung - der Switch passt die Aufteilung des Adressraums im Kernelmodus / des Adressraums im Benutzermodus (zuvor 2 GB bis 2 GB) auf 1 GB bis 3 GB an. Lesen Sie den Beitrag von Raymond Chen über / 3 GB und die Folgemaßnahmen, bevor Sie fortfahren.
quelle
Bevor Sie Änderungen vornehmen, sollten Sie zunächst überprüfen, ob die Prozesse, die Sie ausführen möchten, mit dem Flag LARGEADDRESSAWARE verknüpft sind. Mit dem Flag werden keine Änderungen an der Verwendung des Speichers durch den Prozess vorgenommen.
Sie können die SDK-Tools dafür verwenden:
Die Kopfzeilen sollten Folgendes enthalten:
Ich habe die Überprüfung auf devenv.exe durchgeführt und in VS2008 enthält sie das Flag.
quelle
Viele Nachteile. Standardmäßig weist Windows jedem Prozess einen 4-GB-Speicherpool zu, der zu 50% zwischen den Kernelmodusprozessen (allen Apps gemeinsam) und den Benutzermodusprozessen (für jede App eindeutig) aufgeteilt ist (vereinfachte Erläuterung). Eine App, die auf dem System ausgeführt wird, verfügt daher über 2 GB Speicher zum Spielen, während das System selbst über eigene 2 GB verfügt. Wichtiger Hinweis: Diese zweiten 2 GB sind die gleichen 2 GB für alle Apps, die auf dem System ausgeführt werden.
Der Schalter / 3GB passt die Aufteilung so an, dass der Kernelmodus 1 GB und der Benutzermodus 3 GB erhält.
Betrachten Sie nun die Apps, die Sie ausführen. Einige von ihnen benötigen mehr Speicherplatz im Kernelmodus, andere mehr Speicherplatz im Benutzermodus. Da der Kernelmodus-Pool gemeinsam genutzt wird, kann Ihnen dort sehr schnell der Arbeitsspeicher ausgehen, wenn Sie Apps ausführen, die den Kernelmodus-Speicher unter Druck setzen. Wenn Ihre Apps jedoch viel Speicher im Benutzermodus verwenden, erhalten Sie durch die Implementierung von / 3 GB den erforderlichen Headroom.
Es liegt also wirklich an der Art der Anwendungen, die Sie ausführen möchten. Die goldene Regel ist, den App-Anbieter zu konsultieren und die Dokumentation zu lesen. Insbesondere wenn der App-Anbieter keine Empfehlung hat, sollten Sie misstrauisch werden. Haben sie ihre App ordnungsgemäß getestet oder nicht? Dies sind grundlegende Dinge, die jeder Anbieter wissen sollte.
Hier wird alles ziemlich gut diskutiert: http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx
In Ihrem speziellen Fall denke ich, dass ein Wechsel zu 64-Bit und mehr RAM eine praktikablere Lösung ist, da Sie mit / 3 GB nicht wirklich das bekommen, was Sie wollen (funktioniert es überhaupt unter XP?)
quelle
Wir haben es auf einigen Systemen verwendet, auf denen Bildverarbeitungs-Apps für viele große Bilder ausgeführt wurden, und haben keine Probleme festgestellt. In allen Situationen, in denen Sie den zusätzlichen Gig an Anwendungsspeicher benötigen, werden Sie die App wahrscheinlich laufen lassen und nichts anderes mit dem System tun, sodass es wahrscheinlich keine großen Auswirkungen gibt.
quelle
Ich habe gesehen, dass es Grafikkarten auf seltsame Weise stört. Aber jeder Fahrer kann sich mit diesem Schalter schlecht benehmen, wenn er nicht richtig geschrieben ist.
Manchmal können diese Probleme durch Hinzufügen des Schalters / USERVA behoben werden.
http://support.microsoft.com/kb/319043
http://support.microsoft.com/kb/833721
http://support.microsoft.com/kb/839490
http://support.microsoft.com/kb / 316739
quelle
Es funktioniert nur zuverlässig (außer beim Debuggen von Treibern usw.) auf einem Enterprise Server-Betriebssystem für LARGEADDRESSAWARE-Binärdateien.
devenv ist keine solche binäre. SQL Server und Exchange sind zum Beispiel.Sie benötigen ein x64-Bit-Betriebssystem
und VS x64-Bearbeitung: LARGEADDRESSAWARE wird auf x64 erkannt , um die 2-GB-Grenze zu überschreiten.quelle