2010年11月26日

[学习][Matlab] Matlab 能支持多大的矩阵计算

[str, maxsize] = computer 即可搞定
官方说法: it depends on the memory of your computer,including virtul mem provided by your operating system.
实际上呢:
>> [str, maxsize] = computer
str =
PCWIN64
maxsize =
2.8147e+014
不过呢:
matlab分配数组时,一定要分配一个contiguous address内存.
matlab R14里面提供了一个函数可以查看有多少连续的空间可以用来分配给数组:
>> m = feature('DumpMem')
看最后一行:
Largest available memory block is 8785014480896 bytes (8378042.68 MB) located at address 001803b2000
这个就是实际中"最大支持多大的数组".
所以呢: 
多用用clear,pack函数清理你的内存.还有一个就是在程序开始前pre allocate你的内存,也就是说,在内存还没有给搞的东一块西一块的时候,就先着大的空间,这样多爽.
最后,实在不行,就-nojvm,这样还能节省一点java的界面内存.

没有评论:

发表评论