虽然我之前在这里找到了许多问题的解决方案,但我是新来的问题。
这个特殊的问题我似乎无法找到答案,所以我会加入并问。
我使用并行计算工具箱同时运行多个模拟,我正在开发的代码将部署在单个核心上,因此无需将算法转换为并行。
每个模拟创建的数据结构都很大,一次运行8次模拟就是使用我机器中的所有可用RAM(4GB)。
我目前正在考虑减少每个模拟使用的内存,并且想知道是否有人知道如何从函数的每个实例获取内存使用信息。
到目前为止,我一直在打电话:
parfor i=1:8
[IR(:, i) Data(i)] = feval(F, NX, NY(i), SR, NS, i);
end
内部功能F
[usr, sys] = memory;
format short eng;
TEST.Mem = usr.MemUsedMATLAB;
但这可以理解的是返回所有8个F实例使用的内存。
我想从F的每个实例获取信息。
注意:数据结构TEST作为数据返回到顶级函数。
提前感谢您的帮助。
答案 0 :(得分:0)
您可以使用matlab探查器获取内存使用情况的提示:
% start profiler
profile -memory on;
% start your simulation
my_sim();
% look at profiler results
profile viewer