Последние записи
- Нужен ли сайт разработчику?
- Обсуждаем технологию I2P
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
19th
Окт
Каким способом можно узнать объем оперативной памяти который занимает приложение?
Posted by Chas under Delphi, Пост-обзор
rpy3uH
procedure TForm1.Button1Click(Sender: TObject);
var
pmc: PPROCESS_MEMORY_COUNTERS;
cb: Integer;
begin
Memo1.Lines.Clear;
cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
GetMem(pmc, cb);
pmc^.cb := cb;
if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
begin
Memo1.Lines.Add( FloatToStr(pmc^.WorkingSetSize/1024) + ' KB');
Memo1.Lines.Add( FloatToStr(pmc^.PagefileUsage/1024) + ' KB');
end;
FreeMem(pmc);
end;
PagefileUsage/1024 – ничто иное как поле «виртуальная память»
WorkingSetSize/1024 – очень близкое значение к полю «память»
(тестировалось на XP SP3)
а по большому счёту поле «виртуальная память» намного адекватнее отражает использование памяти программа. WorkingSetSize – это рабочий набор, сумма памяти занимаемой приложением и в user mode и в kernel mode, т.е. включая всю память отведённую для хранения информации о программе в системе (объект-процесс, объект-поток, хендлы и т.д.)
Пост написан при поддержке мебельной фабрики Мария. кухонная мебель Мария в Москве, Саратове и других регионах России.

