生活随笔
收集整理的這篇文章主要介紹了
matlab内存管理(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自:http://hi.baidu.com/bi%CB%AB%C9%FA%BB%A8/blog/item/5ab86c38ac2f45e715cecbab.html
?
| 1,確保內存的連續性 Matlab 中數組必須占用連續分配的內存段 當無法為新建的數組分配連續的內存段的時候 Out of Memory 就會出現 由于反復分配和釋放數組會使可用的連續內存段減少 實際操作中可如下處理: a,將不用的數據存儲在工作目錄,讓下一步計算需要的單獨存儲 b,用clear清空內存 c,載入需要計算的變量 d,用 pack 命令 這是將內存中的數組寫入硬盤,然后重建這些數組,以減少內存碎片
可以用命令 feature('memstats')來查看內存的使用情況
2,減少使用雙浮點數 Matlab 默認的數字類型是雙精度浮點數double 每個雙浮點數占用 8 個字節 對于一些整數操作來說,使用雙浮點數顯得很浪費 在很多精度要求不高的情況下,使用4個字節的單浮點數 single 可以減少一半的內存 關于單、雙浮點數的精度對照如下,以便根據需要選擇使用:
single: 精度 (1.1921e-007) 最大數 (3.4028e+038) double: 精度 (2.2204e-016) 最大數 (1.7977e+308) ? 除了升級內存和升級64位系統外,下面幾個方法也是解決之道。 # 增加虛擬內存 # 采用PACK (在命令行輸入 pack 整理內存空間) # 采用3GB 開關啟動系統(修改 c盤根目錄 boot.ini 啟動選項加上 /3G 例如:multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3G # 優化程序,減少變量 (使用稀疏矩陣 sparse ) save 保存變量 clear 變量 load 變量,需要時再讀出來 # 如果必有必要,不要啟動java虛擬機,采用matlab -nojvm啟動 (在快捷方式屬性里面的 "..../matlab.exe") 改為("...../matlab.exe" - nojvm) #關閉Matlab Server?? # 使用 單精度 single 短整數替代 雙精度。 |
總結
以上是生活随笔為你收集整理的matlab内存管理(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。