Сообщите, сколько памяти в стеке / куче используется объектом? (GDB)

Как определить общий объем памяти, используемой объектом, и какой процент этой памяти в данный момент существует в стеке? А как насчет кучи?
Например, учитывая эту программу:

#include <cstdlib>
#include <vector>
#include <string>

int main(){

//I wonder how much memory is being
//used on the stack/heap right now.

std::vector<std::string> vec{"11","22","33"};

//how about now?

return EXIT_SUCCESS;
}

как посмотреть размер стека и кучи до и после создания вектора?
Возможно ли это сделать с помощью GDB?
Руководство предоставляет некоторую информацию о изучение памяти, но я не смог сообщить такую ​​информацию.

0

Решение

Если вы готовы использовать специальные функции GLIBC, вы можете использовать mallinfo() прямо в вашей программе, чтобы ответить на вопрос:

#include <cstdlib>
#include <vector>
#include <string>
#include <iostream>
#include <malloc.h>

int main(){
std::cout << "Using: " << mallinfo().uordblks << "\n";

std::vector<std::string> vec{"11","22","33"};

std::cout << "Using: " << mallinfo().uordblks << "\n";

return EXIT_SUCCESS;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]