matlab占用太多内存

您所在的位置:网站首页 把内存变大 matlab占用太多内存

matlab占用太多内存

2023-09-09 02:46| 来源: 网络整理| 查看: 265

一、利用clear清除内存时,要用pack函数进行内存整理

Matlab在运行大数据时,会出现Out

of Memory,在程序中加入clear不需要的变量,能否解决Out

of Memory问题。答案是或许可以,或许不可以,

原因清除变量或者给该变量重新赋值只是释放了该变量先前分配的内存块,由于matlab是分连续块分配内存给变量,所以如果清除的这个内存空间不一定可以用上,比如,一个萝卜一个坑,为了腾出更多的坑,把不用的萝卜拔掉,然而如果来一个比较大的萝卜,先前的坑不一定能够容的下,仍然会出现Out

of Memory的问题,这个时候最好用pack函数,把腾出的内存空间重新整理成连续的块,这样如果后面有较大内存占用的变量,满足内存使用的概率较大。

附pack函数的说明:

用法:

pack

pack

filename

pack('filename')

pack可以为用户整理内存的机制在于,pack函数重新整理MATLAB工作空间中驻留的变量,将原来断断续续的内存整理的连续起来,这样原来断断续续的内存可能不足以存储大的矩阵,而整理之后,可以很显著的提高内存的使用效率。整理步骤:

(1)将base空间以及全局变量保存到一个mat文件

(2)清空工作空间中的所有资源

(3)重新载入mat文件中保存的base空间变量和全局变量,然后删掉mat文件

这样一来,重新分配的空间将是连续的,避免掉原来断断续续的内存使用。

需要注意的是pack不能提高MATLAB所拥有的虚拟内存数量,如果想要增加这个数量,也就是使MATLAB单独变量的最大size或者同时存在的变量所占有的最大空间增大,需要提高系统的虚拟内存。

二、查询matlab内存使用,计算要处理的数据大小

利用命令feature('memstats')或者system_dependent

memstats来查看内存大小;了解自己matlab内存状况后,然后计算下自己要处理的数据容量大小,字节/1024/1024转换为MB来看更方便;

三、matlab内存管理

Matlab 程序跳出“Out of Memory”

<


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3