Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Сколько памяти занимает объект класса


Автор: ДобренькийПапаша 26.1.2010, 14:53
Сколько занимает места 
Код

public StringBuilder builder=new StringBuilder(int.MaxValue/100);


sizeof() у меня не кушает пользовательские структуры и классы. Поэтому объявить в структуре и взять её размер что-то не прокатывает)))
А я думал, что прокатит. Так что совсем не знаю, как узнать это программно.

Автор: PashaPash 26.1.2010, 15:59
ДобренькийПапаша, 
20 байт сам объект класса StringBuilder,
42949712 байт объект + внутренности

Автор: ДобренькийПапаша 26.1.2010, 16:07
Цитата(PashaPash @ 26.1.2010,  15:59)
ДобренькийПапаша, 
20 байт сам объект класса StringBuilder,
42949712 байт объект + внутренности

Спасибо большое.
Три вопроса:
1)Про то, что объект класса StringBuilder весит 20 байт это можно с MSDN узнать или это любой объект любого класса 20 байт занимает (я что-то такого не припоминаю правда)?
2)42949712 байт объект + внутренности
Под внутренностями имеешь ввиду то, чем будет заполнен объект?
3)Как определить вес программно? (Это просто для интереса, такой задачи у меня нет).

Автор: PashaPash 26.1.2010, 16:30
ДобренькийПапаша, 
1. зависит от типа. чистый object занимает 12 байт. Именно StringBuilder - 20.
2. под внутренностями - то, на что объект ссылается. в твоем случае - на буффер размером int.MaxValue / 100 * 2 байт
3. программно, из того же приложения - вроде никак. можно посмотреть только под отладчиком.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)