当parfor中的MATLAB函数产生警告时,如何避免内存泄漏?

时间:2017-03-30 15:44:18

标签: matlab memory-leaks parfor

我将matlab R2015b用于带有本地parpool的Win Server 2012操作系统。当parfor-loop中的函数生成警告时,我在本地工作程序上有内存泄漏。 parfor-loop结束后也不释放内存。例如:

x = rand(78, 1);
for j = 1:100
    parfor i = 1:1000
        [~, z] = kpsstest(x);
    end
end

函数kpsstest生成警告:

警告:在列表的关键值下方测试统计信息#1: 报告的最大p值= 0.100。  在kpsstest> getStat(第632行)  在kpsstest(第291行)

即使我使用构造,内存也会泄漏给员工:

   warning('off', 'econ:kpsstest:StatTooSmall');
   pctRunOnAll warning('off', 'econ:kpsstest:StatTooSmall')

启动工人的记忆: enter image description here

执行代码后内存开启: enter image description here

当parfor中的函数生成警告时,如何避免内存泄漏?

谢谢。

2 个答案:

答案 0 :(得分:2)

此问题是此bug report的主题。如果您能够升级到R2017a,这是最简单的解决方法。

答案 1 :(得分:0)

好吧,这可能不是最干净的方法,但您可以关闭并行池,请参阅here