Размер объекта .NET - PullRequest
       12

Размер объекта .NET

5 голосов
/ 10 марта 2009

Каков размер выделенного в куче объекта в .net, включая накладные расходы на управление? Я предполагаю, что объекты расположены вдоль 4-байтовых границ, или используется другой подход?

Ответы [ 2 ]

5 голосов
/ 10 марта 2009

4 байта на x86. Возможно 8-байтовые границы на x64.

На x86 есть 8-байтовые издержки для ссылки на тип и блока синхронизации. Я не удивлюсь, если на x64 это будет 12 или 16 байт.

По какой-то причине в x86 экземпляр размером всего System.Object занимает 12 байтов, что делает 12 байтов абсолютным минимальным возможным размером - но класс с int также занимает 12 байтов. Я понятия не имею, почему это так.

1 голос
/ 10 марта 2009

Зависит от машины, на 32-битной машине обычно это 4 байта. Однако на 64-битном блоке он составляет 8 байтов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...