您如何观察内存消耗?Taskmanager会显示内存
含蓄的
Matlab。如果Matlab分配内存并在之后释放它,这并不一定是直接释放的。只要没有其他应用程序请求内存,保持它的状态是有效的。
操作系统为Matlab保留了4.7GB的RAM,这是否会造成任何问题?你为什么说,这是“太多”的记忆?
虽然
现在的
内存消耗很小,不断增长的阵列可能需要更多内存。例子:
x = [];
为k=1:1e6
x[k]=k;
结束
虽然最后的数组
x
只占用8MB的RAM(加上头部约100字节),对RAM的中间需求要高得多:
总和(1:1e6)*8字节=4字节
.说明:如果x=[1],下一步x(2)=2复制前一个数组并添加一个新元素。虽然中间使用的内存被释放,但是释放没有保证的时间限制。
你能发布一些代码,重现这个问题吗。