首頁 >後端開發 >C++ >儘管有 16GB RAM,為什麼我的 64 位元 .NET 應用程式仍會拋出 OutOfMemoryException?

儘管有 16GB RAM,為什麼我的 64 位元 .NET 應用程式仍會拋出 OutOfMemoryException?

Linda Hamilton
Linda Hamilton原創
2025-01-04 01:39:39804瀏覽

Why Does My 64-Bit .NET App Throw an OutOfMemoryException Despite Having 16GB of RAM?

.NET 中的OutOfMemoryException:64 位元電腦上的記憶體使用量超過1.3GB

儘管在64 位元電腦上安裝了16GB RAM ,應用程式在消耗大約1.3GB 的記憶體後遇到OutOfMemory異常 記憶。儘管沒有任何大小超過 2GB 的單一對象,此問題仍然存在。

原因在於編譯目標架構。預設情況下,.NET 應用程式是針對 32 位元體系結構進行編譯的,這對每個物件的記憶體使用施加 2GB 的限制。即使在 64 位元機器上,編譯 32 位元也會在相同程度上限制記憶體使用。

解決方案:

要解決此問題,請重新編譯應用程式目標64 位元架構。這將允許應用程式充分利用系統上可用的 16GB RAM。重新編譯後,二進位檔案將專門在 64 位元機器上執行。

此外,需要注意的是,如果 CLR 中的單一集合(例如 List)分配 2GB 的內存,也可能會發生 OutOfMemoryException。 32 位元和 64 位元架構上的記憶體。

以上是儘管有 16GB RAM,為什麼我的 64 位元 .NET 應用程式仍會拋出 OutOfMemoryException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn