我将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')
当parfor中的函数生成警告时,如何避免内存泄漏?
谢谢。
答案 0 :(得分:2)
此问题是此bug report的主题。如果您能够升级到R2017a,这是最简单的解决方法。
答案 1 :(得分:0)
好吧,这可能不是最干净的方法,但您可以关闭并行池,请参阅here