Im currently searching through the Julia Code of both Vector/Array and String, but so far I haven’t found any details on how these are actually structured at a low level.
From using Base.summarysize
, I can guess that Vector uses 40 Bytes to store Information such as length, a pointer and capacity (like a lot of C++ Vector implementations do), and that String uses 8 Bytes + the length of the UTF-8 String, but I’m interested in where in the Code these are implemented. My Guess would be somewhere in the C/C++ Part of Julia, but I am unsure where exactly to search there.
Example of using Base.summarysize
:
sizeof(collect(1:100))
800
julia> Base.summarysize(collect(1:100))
840
julia> Base.summarysize([])
40
julia> Base.summarysize("")
8
julia> Base.summarysize("Hello World!")
20
julia> Base.summarysize("A")
9
julia> Base.summarysize("Ä")
10