示例代码如下:
%% test Parfor
clc,clear,close all;
p = gcp('nocreate');
if isempty(p)
p = parpool('local');
else
delete(p);
p = parpool('local');
end
for i = 1:100000000
tic
a = zeros(1000,100);
for k = 1:100
parfor j = 1:1000
a(j,k) = rand(1,10000)*rand(10000,1);
end
end
toc
end
***************************************************************************************************
由于原来程序中用来符号变量,所以并行池选择了‘local’
如以上示例代码,运行过程中每个进程的内存不断增加,效率越来越低,就像不会自动释放内存一样,
请教如何删除这部分内存!!
下图分别为运行之后和运行之前的内存占用。


%% test Parfor
clc,clear,close all;
p = gcp('nocreate');
if isempty(p)
p = parpool('local');
else
delete(p);
p = parpool('local');
end
for i = 1:100000000
tic
a = zeros(1000,100);
for k = 1:100
parfor j = 1:1000
a(j,k) = rand(1,10000)*rand(10000,1);
end
end
toc
end
***************************************************************************************************
由于原来程序中用来符号变量,所以并行池选择了‘local’
如以上示例代码,运行过程中每个进程的内存不断增加,效率越来越低,就像不会自动释放内存一样,
请教如何删除这部分内存!!
下图分别为运行之后和运行之前的内存占用。

