I have couple of questions ( maybe dumb :-) ) regarding composite types: 1) For a vector of composite type defined as:
immutable Point{T<:AbstractFloat} vstate :: Vector{T} # is a vector of length 6 which will be updated during code execution ct :: Vector{T} # is a vector of length 4 which will be updated during code execution id :: Int64 # is a constant input end N = 1000 MyPoints = Array(Point,N) is it more useful / recommended to use immutable or mutable composite types ? I am mainly concerned with memory allocation and performance while accessing MyPoints. 2) If we have a immutable composite type as: immutable Body{T} μ :: T end immutable PRB{T} #constant, doesn't change once set bodlist :: Vector{T} #vector of another immutable type end b = Body(1.0) prb = PRB([b]) and we access the variables as follows, results in memory allocation: @time b.μ 0.000002 seconds (5 allocations: 176 bytes) @time prb.bodlist[1].μ 0.000004 seconds (6 allocations: 192 bytes) why is there a memory allocation every-time I access these variables ? (both for nested and the un-nested case) thanks for all the help, Nitin