Wie hoch ist die maximale Speichergröße für die ASP.NET-Anwendung unter Windows 2008 64bit?Maximale Speichergrößenbeschränkung für ASP.NET-Anwendung unter Windows 2008 64bit
Danke, Guy Bertental
Wie hoch ist die maximale Speichergröße für die ASP.NET-Anwendung unter Windows 2008 64bit?Maximale Speichergrößenbeschränkung für ASP.NET-Anwendung unter Windows 2008 64bit
Danke, Guy Bertental
Es gibt 2 Grenzen
An sich sind Sie darauf beschränkt, was 64bit Windows als adressierbaren Raum bieten wird -, die zu 8 TB beträgt. Wenn eine zukünftige Version von 64bit Windows dieses Maximum erweitert, sollten Sie sehen, dass sich dies sofort in .NET-Anwendungen widerspiegelt, die auf der 64-Bit-CLR ausgeführt werden - es gibt keine hardcodierte oder .NET-Architekturbeschränkung innerhalb des 64-Bit-Adressraums.
Allerdings hat .NET ein fest codiertes Limit von 2 GB pro Objekt. Die einzige realistische Möglichkeit, die Sie erreichen können, besteht darin, wirklich große Arrays zu definieren, z. B. new int[1000000000]
. Dies ist auch der Hauptgrund für das Limit (abgesehen von einigen Problemen mit der Speicherfragmentierung), da der .NET-Framework-Standard Array-Indizes als int
definiert.
Die CLR 64-Bit lässt Sie einen Adressraum von 8 TB sehen.
Bedenken Sie, dass die Speicherfragmentierung dazu führen kann, dass der größte zusammenhängende Speicherplatz, den Sie zuweisen können, deutlich geringer ist.
Dies hängt von einer Reihe von Dingen ab.
1. Wie überprüfe ich es? 2. ja 3. nur 1, ich habe nicht eingestellt Web Gartenarbeit –
@Guy um ehrlich zu sein Ich kann keine maßgeblichen Artikel über die pro Prozess Speicher Grenzen finden. Für 32-Bit-Windows-Betriebssysteme ist es ziemlich klar, dass es 2 GB ist. In der 64-Bit-Welt scheint es jedoch eine Menge Grauzone zu geben. Ich würde versuchen, nach den spezifischen Grenzen pro Prozessspeicher Ihres Betriebssystems zu suchen, da es OS-spezifisch zu sein scheint (auch innerhalb der Familie, also achten Sie darauf, die Edition Ihres Servers einzuschließen, z. B. Web, Standard, Kleinunternehmen usw.) – Joseph
Hmm, sind Sie sicher, Fragmentierung, angesichts der Virtualisierung der physikalischen Speicherbereiche? –
Recht, physische Speicherfragmentierung ist nicht wichtig, aber der virtuelle Adressraum kann auch fragmentiert werden, wenn viele kleine Objekte auf den Heapspeicher zugewiesen werden, oder wenn einige Objekte in den großen Objektspeicherplatz gelangen und somit keine Garbage Collections erhalten . Zu einem großen Teil wird die CLR sich darum kümmern, aber es ist immer noch möglich, mit der Fragmentierung zu enden. – Nick