Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.61
zinjvi
1 / 1 / 0
Регистрация: 12.05.2012
Сообщений: 26
#1

Как узнать, в процесе отладки, сколько памяти занимает программа? - C++

14.07.2012, 21:56. Просмотров 4974. Ответов 13
Метки нет (Все метки)

Вот чтобы проследить за тем сколько и когда программа занимает и какое количество килобайт под капие переменные.... Чтобы увидеть что занимается память при выделении динамической памяти и освобождается при удалении.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2012, 21:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как узнать, в процесе отладки, сколько памяти занимает программа? (C++):

Как узнать, сколько памяти занимает тот или иной элемент программы? - C++
Товарищи, подскажите, пожалуйста, ответы на следующие вопросы: 1) Есть какие-либо средства определения, сколько памяти жрёт программа в...

Сколько памяти занимает метод? - C++
Сколько памяти в классе выделяется под метод?

Сколько оперативной памяти занимает приложение? - C++
Как определить в c++ сколько оперативной памяти занимает приложение?

Сколько памяти занимает комплексное число? - C++
Здравствуйте! Подскажите пожалуйста байтовый (или битовый) размер комплексных типов данных. Например 32fc будет занимать 32 бита, или...

Сколько памяти занимает указатель? Ссылка? - C++
Вот никак не могу найти ответы на эти вопросы. Указатели и ссылки эффективны в плане времени, но что касается выделяемой памяти, хотелось...

Сколько памяти занимает квадратная матрица вида char c[3][3]? - C++
Всем привет, недавно задали вопрос: "Сколько памяти занимает матрица вида" char c; Я сразу ответил 9 байт. На что последовал...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
HappyAndRu
13 / 13 / 2
Регистрация: 19.05.2012
Сообщений: 44
14.07.2012, 22:28 #2
Операция sizeof определяет размер переменной в байтах:
C++
1
2
int x=5;
cout << sizeof x << endl;
zinjvi
1 / 1 / 0
Регистрация: 12.05.2012
Сообщений: 26
14.07.2012, 22:52  [ТС] #3
Это я знаю, а так чтобы сразу видеть по всем переменным, в виде каких то таблиц...
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
15.07.2012, 17:46 #4
создайте переменные разных типов,и делайте sizeof(переменная) в чем собственно проблема
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
15.07.2012, 17:50 #5
Кто-нибудь из ответивших может мне объяснить связь между вопросом ТС(в частности про динамическую память) и выводом sizeof-а?

zinjvi, ОС?
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.07.2012, 17:50 #6
для этого есть специальные инструменты: профайлеры, мониторы и т.п.
они все показывают и рассказывают. если в маленькой программе это можно и на глаз оценить (но непонятно, зачем в маленьких программах это знать), то в большой - врятли получится нормально это сделать.
вам для каких целей все это нужно знать?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
15.07.2012, 18:06 #7
в этих ваших юнихах proc/PID/memstat, какая-та из утилит valgrind'a
в виндах - диспетчер задач или Process Explorer
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
15.07.2012, 20:12 #8
Ну если надо проверить дает ли код утечку я делаю так помещаю этот код в цикл, допустим:
C++
1
for(ini i=0;i<10000;i++) {/*Код*/}
и смотрю в диспетчер задач растет ли память.
zinjvi
1 / 1 / 0
Регистрация: 12.05.2012
Сообщений: 26
15.07.2012, 20:57  [ТС] #9
Цитата Сообщение от soon Посмотреть сообщение
zinjvi, ОС?
Операционная система? Виндовс.

Добавлено через 7 минут
Цитата Сообщение от DU Посмотреть сообщение
профайлеры, мониторы и т.п.
а можно конкретные названия программ , в гоогл ничего корректного не нашел...

Нужно чтобы следить за тем сколько программа ест памяти... просто хочется знать какая переменная или какой массив ест сколько памяти...
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
15.07.2012, 21:04 #10
Цитата Сообщение от zinjvi Посмотреть сообщение
просто хочется знать какая переменная или какой массив ест сколько памяти...
а это и так не очевидно?
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
16.07.2012, 10:15 #11
что-то туго у вас с поиском. вот пару запросов, и везде что-то советуют или сразу ссылки на конкретные профайлеры:

http://www.google.ru/search?hl=ru&ne...d=0CJoBENUCKAM

http://www.google.ru/#sclient=psy-ab....,cf.osb&cad=b
-=ЮрА=-
Заблокирован
Автор FAQ
16.07.2012, 14:38 #12
Цитата Сообщение от zinjvi Посмотреть сообщение
Вот чтобы проследить за тем сколько и когда программа занимает и какое количество килобайт под капие переменные.... Чтобы увидеть что занимается память при выделении динамической памяти и освобождается при удалении.
-всё очень просто если дело касается windows - вызваем диспетчер задач и смотрим столбцы Память и Пиковое использование памяти (см крин). Постоянное увеличение счётчика в графе Пиковое использование - верный признак утечки. Также следует поглядывать на динамику изменения памяти. Т.е. если в программе был объект на 3 Мб и после какого-то момента (скажем нажатия кнопки - предполагалась очистка а память приложения не уменьшилась на те самые 3 Мб - это также признак того, что объект ещё привязан к нашему алгоритму и забирает ресурсы ОС).
Миниатюры
Как узнать, в процесе отладки, сколько памяти занимает программа?  
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.07.2012, 16:14 #13
Используй контейнеры, вместо массивов и интеллектуальные указатели и тебе не придётся парить мозг, размышляя о наличии утечек.
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
19.07.2012, 23:16 #14
не придётся парить мозг, размышляя о наличии утечек.
Ага у мозга будет другое занятие поразмышлять над тем какой из умных указателей применить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2012, 23:16
Привет! Вот еще темы с ответами:

Как определить, сколько байт занимает массив? - C++
Как определить сколько байт занимает массив? Приведите фрагмент кода, с помощью которого можно это определить.

Как найти определенные байты в процесе? - C++
Всем привет помогите мне нужно найти байты в процесе Как это реализовать код в DLL Байты 33 E6 00 00 00 00 01 00 00 00 0D

Какой объем памяти занимает пустая двусторонняя очередь (deque)? - C++
Сколько бит в памяти занимает дек перед добавлением в него элементов и как распределяется память под его блоки?

Трёхмерный вектор занимает в четыре раза больше памяти, чем должен - C++
Создаю трёхмерный вектор таким способом vector&lt;vector&lt;vector&lt;int&gt; &gt; &gt; dp; int n, k; void initializeVector () { dp.resize(n +...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.07.2012, 23:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru