首发于 MATLAB系列
matlab提示内存不足

matlab提示内存不足

一、问题陈述

运行的矩阵或者数据占用内存特别大的时候,matlab就会报错,提示 out of memory ,即内存占用爆满了。

二、结论

先说结论,

1. 如果你的工作用经常出现内存不足的情况,别挣扎了,没的其他解决办法,唯有加内存条,上16G、32G等大容量内存条。(不用看本文了,赶快去买内存条)

2. 如果偶尔的出现了这种情况,可以通过一定技巧,可能会有点效果,那么请继续看本文。

三、查看matlab内存占用方法

3.1 键入命令 memory 查看

3.2 键入 system_dependent memstats 命令查看

3.3 解释上面命令作用

物理内存就是你的内存条的总内存,我的内存条总内存是32GB,然后就是看看你的程序运行占用的多少内存,虚拟内存一般是够用的,也可以增加虚拟内存大小,通过调用硬盘的内存来存储数据。

四、改善办法

4.1 减小java堆大小

操作流程见下图,改好了之后,需要重新启动一下matlab。

对比java对改变前后的效果(见下图),很明显我们发现当增大java堆大小之后,最大数组的容许的内存容量变小了。

至于java堆内存大小有什么用,可以看下面matlab官方的解释:

4.2 增加虚拟内存方法

方法流程参见下图,一般默认调用的是C盘的硬盘内存。

个人感觉这个虚拟内存起作用不大,还是会出现 out of memory

4.3 优化程序

下面只介绍几个最有用的效果,实实在在的可以起到作用,其他的都是胡扯。

1. 给数组预分配内存大小;
2. 及时清除中间过程产生的不需要分析的变量,如clear A;
3. 顶行加个 clear all;
发布于 2023-03-25 12:17 ・IP 属地四川

文章被以下专栏收录