Actually, I realized that the example shows the same problem, but for a different function. This time the allocation occurs in the function CALLING getconn!.
P On Friday, January 9, 2015 at 8:03:00 AM UTC-8, Petr Krysl wrote: > > Tim, > > Your explanation is very helpful. There is a complication though: > The function is actually called from another function (from a chain of > functions). Here is the measurement from a simplified situation: > > - using JFFoundationModule > - using FESetModule > - > - n=100; > - function test(n) > 0 fes=FESetH8(conn=rand(JFInt,n, > 8)) > 112 conn1::JFIntMat=zeros(JFInt,nfense(fes),1); > 6383704 for j=1:size(fes.conn,1) > 0 getconn!(fes,conn1,j); > - end > 0 return true > - end > - > - test(n) > - clear_malloc_data() > - n=100000; > - test(n) > > As you can see the loop over the rows of the array fes.conn allocates > substantial amount of memory. > > Here is the type: > https://gist.github.com/PetrKryslUCSD/794f521a8e5b057e5e4e > > Petr > >
