Heim >Backend-Entwicklung >C++ >Warum löst meine 64-Bit-.NET-App trotz 16 GB RAM eine OutOfMemoryException aus?
OutOfMemoryException in .NET: Speichernutzung übersteigt 1,3 GB auf einem 64-Bit-Computer
Trotz der Installation von 16 GB RAM auf einem 64-Bit-Computer , eine Anwendung stößt auf eine OutOfMemory-Ausnahme, nachdem etwa 1,3 GB Arbeitsspeicher verbraucht wurden. Dieses Problem besteht weiterhin, obwohl kein einzelnes Objekt mit einer Größe von mehr als 2 GB vorhanden ist.
Die Ursache liegt in der Kompilierungszielarchitektur. Standardmäßig werden .NET-Anwendungen für die 32-Bit-Architektur kompiliert, wodurch die Speichernutzung pro Objekt auf 2 GB begrenzt ist. Sogar auf einem 64-Bit-Computer begrenzt das Kompilieren für 32-Bit die Speichernutzung im gleichen Maße.
Lösung:
Um das Problem zu beheben, kompilieren Sie das Anwendungs-Targeting neu 64-Bit-Architektur. Dadurch kann die Anwendung die gesamten 16 GB RAM des Systems nutzen. Nach der Neukompilierung läuft die Binärdatei ausschließlich auf 64-Bit-Maschinen.
Darüber hinaus ist es wichtig zu beachten, dass die OutOfMemoryException auch auftreten kann, wenn eine einzelne Sammlung in der CLR (z. B. List
Das obige ist der detaillierte Inhalt vonWarum löst meine 64-Bit-.NET-App trotz 16 GB RAM eine OutOfMemoryException aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!