Please see https://github.com/JuliaLang/julia/issues/249 
and https://github.com/JuliaLang/julia/issues/3424.

On Monday, March 10, 2014 12:24:20 PM UTC, Carlos Becker wrote:
>
> Hello, I recently found out this:
>
> julia>  b = rand((1024,1024))
>
> julia>  sizeof(b)
> 8388608
>
> julia>  @time b += 2;
> elapsed time: 0.007002567 seconds (8388704 bytes allocated)
>
>
> which, with further investigation, I could verify that it is allocating a 
> new array every time I do something like b += 2,
> instead of modifying the original object b points to.
>
> Is this an intended behavior, or better, is there a command to optimize 
> such operations?
> I tried @devec but it also seems to generate a new destination array. I 
> could also write my own function,
> but I suppose there are better ways to deal with this.
>
> Code such as b ./= 2 is very common, and this introduces array 
> duplication, increasing memory usage as well as
> additional unneeded operations (the former crashed my machine a few hours 
> ago).
>
> Thanks.
>

Reply via email to