|
|
Re: matlab/mex function doesn't free memory
Posted:
Apr 8, 2009 2:48 AM
|
|
"gabo " <pelusacorazon@hotmail.com> wrote in message <grgne9$1ng$1@fred.mathworks.com>... > "Alex Berkovich" <alexber@tx.technion> wrote in message <gi3i3u$m5q$1@fred.mathworks.com>... > > Hello all, > > > > I'm running a mex function that calls for c code (compiled in the same file as the mex function itself). > > when a simulation is done, it seems matlab doesn't release the memory it uses since i see a growing amount of memory being used by matlab (via task manager). > > > > it reaches the limit of my computer and then either crashes or simply continues to run forever. > > > > any suggestion on how to solve this problem is very appriciated. > > > > Hi all, > > It DOES seem that MatLab leaks memory when running mex files. Take a look at the following: Below is a c-mex file (trace2plane.c) that finds intersections between hyperplanes and polygonal-line traces. Run the test code (test_trace2plane.m, down at the bottom) several times and you'll discover MatLab is taking up more and more memory in the task manager. I've been trying to figure out the problem for almost a month now, any insigths or help of any kind will be much appreciated. > > Gabriel > -------------------------------------------------------------------------------------
Here are my results:
>> mex trace2plane.c >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >> test_trace2plane >> feature memstats 1505 MB (5e1d1000) >>
Other than a bunch of figures building up, I don't see any large increases in memory usage from call to call. So I can't reproduce your problem. WinXP with MSVC 8.0. How many times do you have to run it to see a problem? How much memory are you losing with each call?
James Tursa
|
|