What is the memory layout of the .NET array?
Take this array for example:
Int32 [] x = new int 32 [10];
I understand that the larger part of the array is like this:
0000111122223333444455556666777788889999
where each letter is one Bytes, and in the points array, the index matches the index.
In addition, I know that there is a type of reference, and there is a syncblock-index for all the objects, so it can be adjusted above:
Ttttssss0000111122223333444455556666777788889999 ^ + - Object reference point here
Additionally, the length of the array is required to be archived, so perhaps it is more correct:
Ttttssssllll0000111122223333444455556666777788889999 ^ + - Object reference point here
is it complete Happened? Does any array have more data?
I'm asking that this is the reason that we are trying to guess that a large data collection will represent different in-memory and the arrays are slightly different, therefore An overhead solution can have a big effect, but perhaps it is not so in the other.
So basically, for an array, how much is the upper part, basically my question is. Before waking up the arrays
and arrays bad , this part of the solution is a static construct - one-time reference-often the type of thing that can be grown is not necessary here.
Great question I found the article in which the diagrams containing the blocks were for both price type and reference type. See also Richter says:
[GallT] Each additional array has additional additional information associated with it. In this information, the ranks of the array (the number of dimensions), each dimension of the array (almost always 0), and the lower limit for the length of each dimension are. The overhead also has the type of element in the array.
Comments
Post a Comment