[問題] 關於程式使用超過2GB的記憶體

看板C_and_CPP作者 (佛來麵)時間14年前 (2009/12/30 21:12), 編輯推噓5(5012)
留言17則, 9人參與, 最新討論串1/1
OS: windows 7 64bit with 6GB ram 平台VS2008 我的程式因為有大量的三維陣列在做運算 所以會使用很多記憶體 但是目前好像都沒辦法超過2GB 錯誤訊息:1>LINK : fatal error LNK1248: 映像大小 (84047000) 已超出允許大小的上限 (80000000) 有參考過網路上的作法 可是/3GB好像沒辦法用在windows7 有關AWE(Address Windowing Extensions)也不知是否可用 不知有沒有解法可以破除這個限制 多謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.152.94

12/30 21:26, , 1F
好奇問一下, 連結器->系統->啟用大型記憶體 的設定是?
12/30 21:26, 1F

12/30 21:38, , 2F
支援 2 GB 以上的位址 (/LARGEADDRESSAWARE)
12/30 21:38, 2F

12/30 21:56, , 3F
這應該不是用太多記憶體吧 @@
12/30 21:56, 3F

12/30 22:19, , 4F
那是什麼原因@@
12/30 22:19, 4F

12/30 22:25, , 5F
映像大小? 聽起來像是exe太大?? new這個陣列看看 不要
12/30 22:25, 5F

12/30 22:26, , 6F
放在global
12/30 22:26, 6F

12/30 22:26, , 7F
你這是產生的執行檔過大了吧? 是什麼原因讓執行檔這麼大?
12/30 22:26, 7F

12/30 22:27, , 8F
看描述應該是在global區放了很大的陣列 結果data區....
12/30 22:27, 8F

12/30 22:51, , 9F
換OS最快 謝謝!
12/30 22:51, 9F

12/30 23:21, , 10F
難的是它一定要放在global裡@@
12/30 23:21, 10F

12/30 23:21, , 11F
是說換linux嗎?
12/30 23:21, 11F

12/30 23:22, , 12F
程式是要做流力的數值計算 所以一定會那麼大
12/30 23:22, 12F

12/30 23:32, , 13F
放在 global 裡也可以只放 pointer, 要的時候再 new 呀 @@
12/30 23:32, 13F

12/31 00:16, , 14F
樓上正解... 原po觀念有問題...
12/31 00:16, 14F

12/31 02:28, , 15F
哇 這麼大的靜態陣列 編譯起來應該頗花時間 該動態的
12/31 02:28, 15F

12/31 05:38, , 16F
12/31 05:38, 16F

12/31 23:39, , 17F
感謝樓上各位的指教 我再來try try看囉!
12/31 23:39, 17F
文章代碼(AID): #1BEr6tug (C_and_CPP)