|
Вопрос # 906/ вопрос открыт / |
|
Здравствуйте!
1. Как получить информацию о том, сколько оперативной памяти использует программа в данный момент?
 |
Вопрос задал: Ilia Ermakov (статус: 1-ый класс)
Вопрос отправлен: 9 сентября 2007, 23:54
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович
Здравствуйте, Ilia Ermakov!
Сначала отмечу, что то, что написанно в TaskList не соответствует действительности, а вообще вопрос довольно широк и на него нельзя ответить одним предложением. Допустим адресное пространство всех отображенных в память процесса dll причислять к используемой памяти или нет (ведь они могут быть и не Вашими библиотеками, скажем Socrat (переводчик) ставит хук на клавиатуру, чтобы всплывать по нажатию определенной комбинации, его dll отображается в адресное пространство всех процессов, сейчас развелось довольно много подобных программ). В простейшем случае можно пробежать по всем 4 ГБ виртуального адресного пространства, выделяемого процессу, пропуская неинициализированные области и считая суммарный размер инициализированных.
Также возможно стоит обратить внимание на специальные утилиты отслеживания утечек памяти, вроде CodeGuard.
Ответ #2. Отвечает эксперт: Feniks
Здравствуйте, Ilia Ermakov!
Попробуйте следующий код в приложении...
Приложение: Переключить в обычный режим- {$APPTYPE CONSOLE}
-
- program res;
- function MyGetFreeSystemResources32(Id:integer):integer;
-
- stdcall; external 'rsrc32' name '_MyGetFreeSystemResources32@4';
- const
-
- rSystem=0;
- rGDI=1;
- rUSER=2;
- begin
-
- writeln('free resources');
- writeln('System:',MyGetFreeSystemResources32(rSystem),'%');
- writeln('GDI:',MyGetFreeSystemResources32(rGDI),'%');
- writeln('USER:',MyGetFreeSystemResources32(rUSER),'%');
- end.
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 11 сентября 2007, 16:04
Оценка за ответ: 5
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|