Quelle est la disposition de la mémoire d'un .NET tableau?
Prenez par exemple ce tableau:
Int32[] x = new Int32[10];
Je comprends que la majeure partie de la matrice est comme ceci:
0000111122223333444455556666777788889999
Où chaque personnage est un octet, et les chiffres correspond à un indice dans le tableau.
En outre, je sais qu'il existe un type de référence, et un syncblock-index de tous les objets, de sorte que le ci-dessus peut être adapté à cela:
ttttssss0000111122223333444455556666777788889999
^
+- object reference points here
En outre, la longueur de la matrice doit être stocké, donc c'est peut-être plus correct:
ttttssssllll0000111122223333444455556666777788889999
^
+- object reference points here
Est-ce terminé? Il y a plus de données dans un tableau?
La raison pour laquelle je te demande, c'est que nous essayons d'estimer la quantité de mémoire utilisée par un couple de différentes dans les représentations de la mémoire d'un grand corpus de données et de la taille des groupes varie un peu, si bien que la surcharge peut avoir un grand impact dans une solution, mais peut-être pas tant dans l'autre.
Donc en gros, pour un tableau, combien de frais généraux est là, c'est en gros ma question.
Et avant que les tableaux sont mauvais escouade se réveille, cette partie de la solution est une accumulation d'électricité statique une fois de référence souvent ce genre de chose donc cultivables à l'aide de listes n'est pas nécessaire ici.