日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

matlab内存管理

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab内存管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://my.donews.com/deng/2006/09/24/vijgqxehmkxiruywdauvxyiafogtskeymhyw/

?

用 Matlab 進行大規模科學計算或仿真時,內存是一個需要時常注意的問題。當你寫的 Matlab 程序跳出“Out of Memory” 時,以下幾點措施是需要優先考慮的解決方法:

?

?

1. 確保內存的連續性?

?

Matlab 中數組必須占用連續分配的內存段,當無法為新建的數組分配連續的內存段的時候,”Out of Memory” 就會出現。由于反復分配和釋放數組會使可用的連續內存段減少,因此當 Matlab 剛剛啟動時其連續內存最多,此時往往可以新建非常大的數組,這一點可以用命令 feature(‘memstats’)(在 7.0 版本以上)看出。如果現實的最大連續內存段很小,但實際可用內存(非連續的)仍舊很多,則表明內存中碎片太多了。此時可以考慮用 pack 命令,pack 命令的作用就是將所有內存中的數組寫入硬盤,然后重新建立這些數組,以減少內存碎片。此外,在命令行或者程序中都可以使用 clear 命令,隨時減少不必要的內存。?

?

2. 3GB 開關?

?

由于32位 Windows 操作系統的限制,每個進程只能使用最多 2GB 的虛擬內存地址空間,因此 Matlab 的可分配內存也受到相應的限制。Matlab 7.0.1 引進了新的內存管理機制,可以利用 Windows 的 3GB 開關,使用 3GB 開關啟動的 Windows 每個進程可以在多分配 1 GB 的虛擬地址空間,具體的操作方法可見:http://www.mathworks.com/support/tech-notes/1100/1106.html?

?

3. 減少使用雙浮點數?

?

Matlab 默認的數字類型是雙精度浮點數 (double),每個雙浮點數占用 8 個字節。對于一些整數操作來說,使用雙浮點數顯得很浪費。在 Matlab 中可以在預先分配數組時指定使用的數字類型如以下命令:zero(10, 10, ‘uint8′) 。對于浮點數,在很多精度要求不高的情況下,可以使用4個字節的單浮點數 (single),可以減少一半的內存。關于單、雙浮點數的精度對照如下,以便根據需要選擇使用:?

?

?

single: 精度 (1.1921e-007) 最大數 (3.4028e+038)
double: 精度 (2.2204e-016) 最大數 (1.7977e+308)

總結

以上是生活随笔為你收集整理的matlab内存管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:matlab内存管理