亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#:內存不足異常

C#:內存不足異常

C#
DIEA 2019-12-25 14:43:11
今天,我的申請今天拋出了OutOfMemoryException。對我來說,這幾乎幾乎是不可能的,因為我也有4GB RAM和很多虛擬內存。當我嘗試將現有集合添加到新列表時發生了錯誤。List<Vehicle> vList = new List<Vehicle>(selectedVehicles);  據我了解,這里沒有分配多少內存,因為我的新列表中應該包含的車輛已經存在于內存中。我不得不承認這Vehicle是一個非常復雜的類,我試圖一次將大約50.000個項目添加到新列表中。但是,由于Vehicle應用程序中的所有s都來自大小僅為200MB的數據庫:目前,我不知道可能會導致什么OutOfMemoryException。
查看完整描述

3 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

兩點:

  1. 如果您運行的是32位Windows,則將無法訪問所有4GB內存,而只能訪問2GB。

  2. 不要忘記的底層實現List是一個數組。如果您的內存非常分散,則List即使您總共有足夠的可用內存,也可能沒有足夠的連續空間來分配您的。


查看完整回答
反對 回復 2019-12-25
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

3歲的主題,但我找到了另一個可行的解決方案。如果您確定有足夠的可用內存,正在運行64位操作系統并且仍然出現異常,請轉到Project properties-> Build選項卡,并確保將其設置x64Platform target。


查看完整回答
反對 回復 2019-12-25
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

.Net4.5對對象不再有2GB的限制。將此行添加到App.config


<runtime>

    <gcAllowVeryLargeObjects enabled="true" />    

</runtime>

并且可以創建非常大的對象而不會出現OutOfMemoryException


請注意,它僅適用于x64 OS!


查看完整回答
反對 回復 2019-12-25
  • 3 回答
  • 0 關注
  • 813 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號