| 
| 
 | Вопрос # 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
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |