Sorry it seems that I simplified my problem too much in the previous code. 
Actually I am running something similar to the following, and I run it as a 
function and it starts to have allocation since i=512. I am really unsure 
if it's my coding problem(so it can be improved to 0 bytes) or it is 
natural in the system that allocations appear. Thank you so much!

function test()

B=fill!(cell(5,5),Int64[])


for i=1:513

        push!(B[2,3],i)

end


T=zeros(Int64,513)


for i=1:513

        @time T[i]=B[2,3][i]

        println(T[i])

end

end



在 2014年12月1日星期一UTC-6下午7时24分31秒,John Myles White写道:
>
> Did you run this inside a function? If not, your results are not going to 
> be useful indicators of how code will perform inside a function.
>
> Inside of a function body, I see 0 bytes being allocated.
>
>  -- John
>
> On Dec 1, 2014, at 4:53 PM, Yijing Wu <[email protected] <javascript:>> 
> wrote:
>
> Hi all, I found a strange problem about a very simple code in julia and 
> hopefully I can get some help from you, here is the code:
>
>
> B=[1:1000]
>
> T=zeros(Int64,1000)
>
> for i=1:1000
>
>         @time T[i]=B[i]
>
>         println(T[i])
>
> end
>
>
> And when I run the code, the @time shows that it require 48 bytes allocation 
> when i is larger than or equal to 512, and 0 bytes when smaller. Is this a 
> problem that can be improved or I have to accept that it is designed to take 
> some allocations when larger than 512? 
>
>
> Thanks a lot for your help!
>
>  
>

Reply via email to