Matlab 2020a/b fft function memory leak

6 views (last 30 days)
Felix
Felix on 28 Oct 2020
Commented: Steven Lord on 13 Jul 2022
The problem can be recreated using code below
The code contain a fft inside a loop, two 2*1 matrix and nothing more.
---------------------- start ----------------------
clear
a = ones(2,1);
while 1
c = fft(a);
end
-------------------- end ---------------------
when start running this code, MATLAB 2020b is taking about 1.4g memory as shown below
Then, the code would take about ~50mb more memory per second. After running the code above a few minutes,
the memory occupation is shown below
I think those figures are pretty self explanatory to the problem. Keep running code above will eventually exhaust all whatever amount of memory avaliable to the computer.
This feature effectively eliminate the possibility of using matlab for projects involve large amount of FFT.
I think this feature is undesired for my purpose. Is this feature expected or not? If expected, how can I get around of this feature and release those memory? If unexpected, when would it get fixed?
This feature is unique to MATLAB 2020a and MATLAB 2020b, previous release does not contain this unexpected feature.

Answers (1)

Anmol Dhiman
Anmol Dhiman on 3 Nov 2020
Hi Felix,
This memory leak is in fact a bug which originated in R2020a and has no current workaround.
Only a very tiny amount of memory is leaked in each function call, however this becomes problematic when aggregated over many calls.
Our developers are aware about it and will try to fix it in future releases.
Regards,
Anmol Dhiman
  5 Comments
Paul
Paul on 13 Jul 2022
Seems to have been fixed in a version of 2021a link to bug report
Steven Lord
Steven Lord on 13 Jul 2022
I believe this is Bug Report 2367377 which is reported as fixed in release R2021a.

Sign in to comment.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!