Memory profiling of MATLAB columns meaning
matlab, memory
Solution
After a quick google, it would seem that no-one knows, except perhaps MathWorks and they aren't telling. (I jest, but in truth I found very little information on the subject).
Logically however I would interpret the column names as follows:
Allocated memory = the total amount of memory allocated within the function and any it calls.
Freed memory = the total amount of memory released within the function and any it calls.
Peak Memory = the maximum amount of memory in use at any one time during the execution of the function.
Self Memory = the amount of memory used by the function, but not including any functions it calls.
I would hypothesize that a negative 'Self Memory' would indicate that the function frees more memory than it allocates. This could be that it has ownership of a piece of data passed to it, which it then clears. E.g.:
function A()
foo = B();
clear foo
end
function foo = B()
foo = rand(10000,10000);
end
In the example above, the data is created in the call to `B` and since Matlab employs a lazy copy memory management, this case works pretty much as pass-by-reference for the return value. So, `B` allocates the memory, and `A` frees it.
Indeed, running that code with the profiling method in the question produces the following output, which supports my hypothesis.
Problem
I'm using MATLAB profile to observe memory using the command ``` profile -memory on profile clear % my code profile report ``` and i got this table 1- i want to ask about the meaning of Allocated Memory,Freed Memory, SelfMemory, and Peak Memory 2- what is the meaning of negative self memory?