C# 開超大陣列解決方法

C# 在一個陣列裡最多可以有多少元素阿!

根據 MSDN 預設,陣列的最大大小只能夠有 2GB, 假設此陣列為 int 時,最大元素最多只能有 \( 2^{31} /4 \)

那我一定要開到比這更大的陣列呢!

別擔心,還是會有些解決之道的,如果你在 64 位元的電腦就可以解決了!只需要下方兩步驟即可完成。
但還是有些限制,假設 RAM 夠大,將可以使陣列擁有 40 億 elements。如果 RAM 沒辦法負荷 40 億 elements,則只能到負荷最大值。

  1. 將電腦預設 32bits 建置環境改成 64 bits
    建置 > 組態管理員 > 平台 > 新增 > 新平台 > x64,剩下按確認就可以了。

    C_sharp_math_2.jpg
  2. 在 config 新增 gcAllowVeryLargeObjects 來新增
    在 packages.config 新增 gcAllowVeryLargeObjects 即可

    1
    2
    3
    4
    5
    <configuration>  
    <runtime>
    <gcAllowVeryLargeObjects enabled="true" />
    </runtime>
    </configuration>
    C_sharp_math_1.png

心得

即使,未來科技再進步,還是必須要有好的資料結構與演算法,若豪不在意的不斷增加記憶體與處理器只是對之前那些努力設計電腦的人不敬,也會對自家的電腦造成很大的負擔QQ
這是必殺技,請小心慎用,不要上癮。

更新日誌

2020-06-22 14:45:24 - 錯誤資訊修改

  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: