Каковы накладные расходы памяти .NET Object

Каковы объемы памяти объекта в .NET? Я говорю о произвольном голом объекте .... накладные расходы на внутреннюю работу .NET или ссылки:

var obj = new System.Object();

Сколько места занимает объект в куче?

 asawyer18 мая 2012 г., 17:53
Куча и стек являются деталями реализации.
 reach4thelasers18 мая 2012 г., 18:03
Как это сделать: & quot; Вы можете использовать профилировщик памяти, например .NET Memory Profiler .... & quot; ответь на мой вопрос????
 Robert Harvey♦18 мая 2012 г., 17:55
@ThePower: не дубликат. Этот другой вопрос (и его ответы) вообще не говорит об основных затратах памяти для объекта .NET.
 reach4thelasers18 мая 2012 г., 18:02
@asawyer - не могли бы вы объяснить свой комментарий? Я думал, что куча - это абстрактная структура данных, в которой хранятся все объекты ... почему неправильно спрашивать "Сколько места она занимает в куче"?
 reach4thelasers18 мая 2012 г., 17:57
@ThePower. Он не отвечает на мой вопрос, я хочу знать, как использовать память, а не как ее измерять.

Ответы на вопрос(1)

Решение Вопроса

& quot; Памяти и строк & quot;, Это зависит от реализации, но для Microsoft .NET CLR v4 CLR x86 имеет служебную нагрузку на объект 8 байтов, а CLR x64 имеет служебную нагрузку на объект 16 байтов.

Тем не менее, естьminimum размеры 12 и 24 байта соответственно - просто вы получаете первые 4 или 8 байтов «бесплатно» когда начнешь хранить полезную информацию :)

(См. Сообщение в блоге для получения дополнительной информации.)

 16 авг. 2016 г., 11:13
Также могут быть дополнения для переменных-членов, чтобы они соответствовали границам адресов. Эта концепция заполнения дополнительно усложняет вычисление дополнительной памяти объекта. Неудивительно, что C # никогда не вводил оператор sizeof для переменных экземпляра для типов.

Ваш ответ на вопрос