Hi,

I'm sorry if this issue has been addressed before, but if so, I haven't 
been able to find it.  I am working with julia 0.3.7, using IJulia.  I have 
encountered slowdowns like this in more than one situation.  In a minimal 
working example, I initialize an Array{Float64,1} of size T=100. I do this 
G=10,000 times.  On my machine, this usually takes about 0.002 seconds. 
 However, sometimes it slows down to 0.04 seconds (or even slower).  This 
happens about 1 in 5 times, and I am at a loss for why it happens.  Here is 
the code:

function fill_array(G::Int64,T::Int64)
>     for i=1:G
>         ones(T)
>     end
> end
> @time fill_array(10000,100) 


If I run it in a for loop, I have:

> for i=1:10
> @time main()
> end 


With resulting output:

> elapsed time: 0.001038927 seconds (8960000 bytes allocated)
> elapsed time: 0.001172952 seconds (8960000 bytes allocated)
> elapsed time: 0.002866889 seconds (8960000 bytes allocated)
> elapsed time: 0.002285146 seconds (8960000 bytes allocated)
> elapsed time: 0.050643838 seconds (8960000 bytes allocated, 95.18% gc time)
> elapsed time: 0.001766999 seconds (8960000 bytes allocated)
> elapsed time: 0.002487496 seconds (8960000 bytes allocated)
> elapsed time: 0.002687758 seconds (8960000 bytes allocated)
> elapsed time: 0.001391227 seconds (8960000 bytes allocated) 
> elapsed time: 0.042945125 seconds (8960000 bytes allocated, 96.16% gc time)
>  


 
As stated earlier, I have encountered the issue elsewhere before.  I 
believe the last place I encountered it was when taking Cholesky 
decompositions of matrices. And again, this happens regularly, but as far 
as I can tell, not in a predictable way.

I'm not sure what the issue is. It seems it has to do with memory 
allocation, even though the number of bytes being allocated is identical. 

Thanks,
Adam

Reply via email to