Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу память, занимаемая процессом
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
qqeeaaddzzcc_the_same qqeeaaddzzcc_the_same вне форума
Member
 
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.01.2009
По умолчанию память, занимаемая процессом - 12.12.2013, 00:18

Здравствуйте.
Подскажите, пожалуйста, не могу найти место в программе где сжирается память и придумал проверять кол-во на входе и выходе их функции с помощью WorkingSetSize
код:
cpp Код:
PROCESS_MEMORY_COUNTERS info;

    GetProcessMemoryInfo( GetCurrentProcess( ), &info, sizeof(info) );
    //Form1->Edit1->Text= (size_t)info.WorkingSetSize;
    //Form1->Edit2->Text= info.PagefileUsage;

    Form1->Edit1->Text= info.cb;
    Form1->Edit2->Text= info.PageFaultCount/1024;
    Form1->Edit3->Text= info.PeakWorkingSetSize/1024;
    Form1->Edit4->Text= info.WorkingSetSize/1024;
    Form1->Edit5->Text= info.QuotaPeakPagedPoolUsage/1024;
    Form1->Edit6->Text= info.QuotaPagedPoolUsage/1024;
    Form1->Edit7->Text= info.QuotaPeakNonPagedPoolUsage/1024;
    Form1->Edit8->Text= info.QuotaNonPagedPoolUsage/1024;
    Form1->Edit9->Text= info.PagefileUsage/1024;
    Form1->Edit10->Text= info.PeakPagefileUsage/1024;

Но если сравнить значения полей структуры с тем, что отображается в диспетчере задач для программы, то ничего похожего не найти

Как можно отследить выделение памяти?
Ответить с цитированием
  (#2 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 19.12.2013, 15:43

Даже, допустим, цифры будут совпадать с диспетчером задач. Что это даст? Все утечки - из-за динамических переменных. Проверить обязательное освобождение памяти после каждого выделения. Можно исключить самостоятельное использование динамических переменных, используя контейнеры, типа векторов, листов, очередей и т.д.
Ответить с цитированием
  (#3 (permalink)) Старый
qqeeaaddzzcc_the_same qqeeaaddzzcc_the_same вне форума
Member
 
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.01.2009
По умолчанию 20.12.2013, 21:13

Да, память уходит из-за динамических массивов, но в программе их много, к тому же алгоритмы некоторые, мягко говоря, не очень хорошие. Нашел проблемные места, может, осталось еще где-нибудь, но пока не вижу и память не уходит, или просто медленно. У меня была идея измерять количество памяти на входе и выходе из функции, чтобы выявить ту, в которой проблема, а то каждую досконально проверять времени не хватит.

А от очередей и др., к сожалению, во многих случаях пришлось отказаться. Они более удобны и наглядны, но скорость выполнения критична.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
память для ПК mip Память 2 04.01.2013 15:45
Оперативная память и память видеокарты AptypPM Периферия 14 12.01.2012 22:11
Про память Dlok Память 2 11.12.2011 21:59
память vlad555 Любые вопросы от новичков 2 03.07.2011 11:44
Материнская плата поддерживает память DDR 400, подойдет ли память другого типа? 71slan Любые вопросы от новичков 6 08.06.2010 01:56
Управление COM-объектом и его процессом Granite Golem WinAPI 15 02.04.2009 16:01
Память Frim Память 4 28.12.2008 13:52
как через API определить загрузку процессора каким-либо процессом Voldyr WinAPI 3 20.09.2006 16:10
Открытая система управления процессом разработки devprom Некоммерческие проекты 1 06.02.2006 17:05
Есть созданный процессом дочерний CUI процесс как узнать требует ли он ввода данных Fess exe Visual C++ 1 17.10.2004 19:58
Как узнать загрузку процессора определенным процессом Anonymous Visual C++ 1 20.01.2004 18:12
Как определить загрузку процессора отдельным процессом зная к примеру его PID Malish C++ Builder 3 26.11.2003 15:03



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов