C 處理6個new出來10000 840000的二維動態陣列,記憶體超了,怎麼解決

時間 2021-05-09 23:26:45

1樓:

添記憶體吧..

840000*10000*6個char約佔52G記憶體因為系統要用一些結構來管理分配的記憶體.

不給力啊老濕!

鑑於平時我記憶體消耗已經比較大了, 也沒有太多空閒記憶體可用, 就*4給大家看看吧.

所以說添記憶體就行

程式別忘了用64位編譯

2樓:蝦公尺掠奪者

兩種辦法:

1)優化你的演算法。如果陣列不必同時操作,就不必同時開空間。a)用了開,用完刪;b)二進位制形式寫入硬碟,需要的時讀入。

2)如果記憶體無法從演算法層面避免,就使用能支援你計算的機器。你用的這點記憶體也不算很大。

數值計算需要在這兩種思路中找平衡。

3樓:Jeri

假設不重新設計演算法,就從硬體解決:

用RDIMM記憶體

配上二手X79平台:

我們不需要這麼多,16G單條的就夠了。插滿後20*16G=320G記憶體,記憶體總價3460元

什麼?還不夠用?那好,插32G單條的:

插滿後20*32G=640G記憶體,記憶體總價6360元CPU還有其他的隨便配配,差不多也就五六千什麼?預算不夠?自己改演算法吧,仿照外排序,把可以移出記憶體的部分寫入磁碟。

4樓:周瑤

大概算一下:

6個大約是186GB,顯然一般的電腦都會超過。具體做法之前已經有人說了,用記憶體-檔案對映mmap,把資料儲存在磁碟上,但訪問時彷彿就在記憶體中。

C++的boost庫裡面有乙個interprocess模組,可以跨平台使用mmap,方便。

5樓:在河之洲

new失敗未必是記憶體不夠,而是沒有找到足夠大的記憶體塊。如果你確認記憶體是足夠的,可以每次申請的記憶體塊小一些,失敗的可能就小了。比如不要每次10000個A,少一些。

new 就可能成功。

6 個碳原子能夠組成 C6 分子嗎?

已登出 苯環就是由六個碳原子組成的,如果說的是純粹由六個碳原子組成的,不含其它原素,連戴森球六十個碳原子都做成功了,六個碳原子應該不是難亊。另外石墨晶體有正六邊形的,由六個碳原子在乙個平面上形成正六邊形的石墨晶體環。 風神記者 雖然沒有合成出來過,但不排除以後合成出來的可能。我對 元隆 的說法略有不...

火幣C3認證11個問題怎麼處理?

One玩家 看到不少玩幣的人都遇到了這個問題,其實這個問題確實讓不少想實實在在玩幣的人產生了困擾。對於這種困擾,有時讓人確實很頭疼。自己解決又解決不了,找別人解決又擔心不靠譜,實在是太難了。捂臉 我深有體會,最終還是在朋友的協助下找了回來。太難了,不想再經歷一次了。 火幣 首先,明確為何火幣能限制你...

想給3200g A320m公升級乙個6C6T及以上的U,目前哪款最具價效比?

crazy赤凰 最近3200G 700 850塊錢 一類帶核顯的APU有漲價,建議題主賣掉舊CPU上R5 3600 900 950塊錢 這樣兩百不到就可以輕鬆公升級,而且三代銳龍功耗不像intel 11代的11400一類CPU那麼 火熱 技嘉這塊丐板A320 65w的供電也能保證3600的效能,記得...