Taille de l’object .NET

Quelle est la taille d’un object alloué au tas dans .net, frais de gestion compris? Je suppose que les objects sont alloués selon des limites de 4 octets, ou une approche différente est-elle utilisée?

4 octets de limites sur x86. Éventuellement 8 octets sur x64.

Il existe une surcharge de 8 octets sur x86, pour une référence de type et un bloc de synchronisation. Je ne serais pas surpris de trouver que ce soit 12 ou 16 octets sur x64.

Pour une raison quelconque, sur x86, une instance de System.Object semble prendre 12 octets, ce qui rend la taille minimale absolue de 12 octets – mais une classe avec un int prend également 12 octets. Je ne sais pas pourquoi c’est le cas.

Dépend d’une machine. Sur une machine 32 bits, il s’agit généralement de 4 octets. Toutefois, sur une boîte de 64 bits, il s’agit de 8 octets, etc.