Re: [問題] 請問有關記憶體的問題

看板MATLAB作者 (壞人)時間18年前 (2006/05/07 02:45), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
※ 引述《kenneth1 (柱子)》之銘言: : 請問一下 : 我的電腦記憶體是2G : 我現在有一個15000*15000的矩陣 : 我想對矩陣求eigenvalues : 可是每當我電腦要讀取矩陣時 : 就會出現OUT OF MEMORY : 可是測試矩陣到12000*12000的時候 : 他的記憶體使用量只到達1.2G : 就連虛擬記憶體也沒使用到 : 我使用的作業系統是WINDOWS XP : 我想問一下 : 是我的記憶體真的不夠還是XP限制使我的程式無法執行還是MATLAB的限制 : 還有假使是XP或者MATLAB的問題話 : 要如何解決 : 謝謝 以下是我以前寫的心得,請參考看看! 如果有錯誤的地方,請各位先進不吝給予指教。 :) == 增加 MATLAB 可以使用的記憶體空間 CMHuang (CMingHuang[at]gmail.com) 歡迎散佈及修改,但請保留出處及作者。 適用環境 MATLAB 7.0(R14) on 32bit CPU and Windows XP MATLAB 在 Windows XP 所需要的記憶體超過 1.7GB 時, MATLAB會發生 "out of memory" 的 warning。 不管你怎麼增加 physical memory 或 virtual memory 都無法改善這個問題。 其原因在於 Windows XP 限制最多配置 2GB virtual memory 給每一個 process。 所以 MATLAB 預設在 Windwos XP 上只能使用大約 1.5GB 的記憶體(大約是 180*10^6 個 double 型態的數值)。 你可以在 MATLAB 內使用: feature('memstats'); 來察看 MATLAB 內你可以使用的記憶體空間。 但是 MATLAB 7.0 之後,開始支援 3GB switch 開機選項。 (http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx) 你可以藉著修改 C:\boot.ini 的方式,使 Windows XP 對每一個 process 的 virtual memory 配額上限到達 3GB。 如下增加 /3GB 參數,並且重新開機。 [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB 重新開機後,再使用 feature 指令查詢 MATLAB 可使用的記憶體空間增加為 2.7GB。 如果 MATLAB 可使用的記憶體空間不如你所想像的增加。 請增加你的 physical memory 或著依照 How Do I Set The Swap Space (http://www.mathworks.com/support/tech-notes/1100/1106.html#setting_swap) 來增加可使用的 virtual memory 大小。 Reference Memory Management Guide (http://www.mathworks.com/support/tech-notes/1100/1106.html) New Features in MATLAB 7 for Handling Large Data Sets (http://www.mathworks.com/company/newsletters/digest/nov04/newfeatures.html) Memory Support and Windows Operating Systems (http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.192.28

05/07 03:02, , 1F
喔喔...板主m~~
05/07 03:02, 1F

05/07 20:29, , 2F
非常感謝~~ 我試試看可以用嗎
05/07 20:29, 2F
※ 編輯: zaguan 來自: 140.111.13.44 (06/27 18:21)
文章代碼(AID): #14NExFb7 (MATLAB)
文章代碼(AID): #14NExFb7 (MATLAB)