Thanks for the response.
I should have read the performance section in the documentation first...

On Friday, July 18, 2014 12:56:00 PM UTC-7, Jameson wrote:
>
> Julia doesn't optimize code run in the global scope. Try putting your 
> code in a function 
>
> On Friday, July 18, 2014, eric l <[email protected] <javascript:>> wrote:
>
>> I just started with Julia
>>
>> I run with Julia 0.2.1 under Mac OSX 10.9.4 (Intel Core i7 with 8 GB @ 
>> 1600MHz)
>>
>>
>> As a first try I decided to write a bit size bitmap module. 
>> I am Using Uint (Uint 64 on my laptop) 
>>
>> I got some strange memory allocation value:
>>
>> julia> bmv = zeros (Uint, 2^20)
>> 1048576-element Array{Uint64,1}: 
>>  0x0000000000000000 
>>  0x0000000000000000 
>>  0x0000000000000000
>> ...
>>
>> *julia> *
>> *sizeof(bmv) *
>>
>> *8388608**julia> *
>> *@time for i in 1:11:2^26 *
>> *       bmv[(i >>> 6) + 1] |= 1 << (i & 0x3F) **      end*
>>
>> elapsed time: 1.547175739 seconds (524573328 bytes allocated)
>>
>> *julia> *
>> *@time for i in 1:11:2^26 **              bmv[(i >>> 6) + 1] |= 1 << (i 
>> & 0x3F)*
>> *                    end*
>>
>> elapsed time: 1.563902069 seconds (571854576 bytes allocated)
>>
>> *julia> **sizeof(bmv)*
>>
>> *8388608*
>>
>> *julia> **@time sum(count_ones, bmv[1:end])*
>>
>> elapsed time: 0.066193955 seconds (25428088 bytes allocated)
>> *6100806*
>>
>>
>> As any can see I start with an array of 2^20 Uint64 : 8MB of zeros
>> and I go through it and modify a bit with some bit arithmetic.
>> What surprise me is the allocation more  than 500MB to do a simple for 
>> loop of a 8MB  vector.
>>
>> Actually the sum of pop-count across the  same array only require an 
>> extra 24MB. 
>>
>> What am I doing wrong and do not understand about Julia?
>>
>> (By the way I am not interested in other way to doing the same equivalent 
>> processing (e.g. Bool array...) )
>>
>> Thanks,
>>
>> Eric. 
>>
>>

Reply via email to