我正在使用MATLAB配置文件来使用该命令观察内存
profile -memory on
profile clear
% my code
profile report
Run Code Online (Sandbox Code Playgroud)
我得到了这张桌子

1-我想询问Allocated Memory,Freed Memory,SelfMemory和Peak Memory的含义
2-负面自我记忆的含义是什么?
Ala*_*lan 19
快速谷歌之后,似乎没有人知道,除了MathWorks,他们并没有说明.(我开玩笑,但实际上我发现关于这个主题的信息很少).
但从逻辑上讲,我会将列名解释如下:
分配的内存=在函数内分配的内存总量及其调用的内存量.
释放内存=函数内释放的内存总量及其调用的内存量.
峰值内存=在执行功能期间任何时候使用的最大内存量.
Self Memory =函数使用的内存量,但不包括它调用的任何函数.
我假设负面的"自我记忆"会表明该函数释放的内存多于分配的内存.这可能是它拥有传递给它的一段数据,然后它就会被清除.例如:
function A()
foo = B();
clear foo
end
function foo = B()
foo = rand(10000,10000);
end
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,数据是在调用中创建的,B并且由于Matlab采用了惰性副本内存管理,因此这种情况非常适用于返回值的传递引用.因此,B分配内存,并A释放它.
实际上,使用问题中的分析方法运行该代码会产生以下输出,这支持了我的假设.

| 归档时间: |
|
| 查看次数: |
3775 次 |
| 最近记录: |