I wonder if your `size` function isn't returning an Int, or that the compiler 
can't infer that. Did you try this on julia 0.4 with @code_warntype?

--Tim

On Friday, January 09, 2015 08:06:43 AM Petr Krysl wrote:
> 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

Reply via email to