LINUX.ORG.RU

[C++] размер памяти, занимаемый объектом

 


0

0

Есть переменная - объект весьма сложного класса. Там куча всяких std::string, std::vector и прочей мути. Существует ли какой-то общий способ узнать, сколько этот объект со всеми своими членами занимает памяти?

Ответ на: комментарий от lester

Вот вот, в том то и проблема :) Собственно, сейчас я просто сделал через цикл с суммированием длин строк, но просто интересно, а нельзя ли эту задачу решить более тривиальными методами?

aix27249
() автор топика
Ответ на: комментарий от aix27249

> сейчас я просто сделал через цикл с суммированием длин строк,

man capacity, ну и sizeof тоже надо приплюсовать, хотя точно подсчитать врядли получится - в gcc строки через счетчик ссылок реализованы, т.е. несколько строк могут один буфер использовать

lester ★★★★
()

Не совсем понятно, что подразумевается под:

сколько этот объект со всеми своими членами занимает памяти

Если исключительно сам объект, то sizeof;

Если нужно получить размер самого объекта, плюс размер всех объектов, на которые он ссылается, итд., то общего способа это узнать нет.

runtime ★★★★
()
Ответ на: комментарий от x905

а зачем так хотеть узнать размер экземпляра объекта ?

Пытаюсь понять на что вообще память расходуется в моей программе. Иногда сжирается под 100 мегов, хотя на мой взгляд аппетиты должны быть меньше хотя бы раз в пять.

aix27249
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.