Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

Память процесса   Найти похожие ветки 

 
THE__Scorpion   (2007-03-19 22:02) [0]

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


 
Eraser ©   (2007-03-19 22:20) [1]

> [0] THE__Scorpion   (19.03.07 22:02)

Память занимаемая процессом понятие довольно растяжимое, на сколько мне известно таск мэнеджер показывает размер working set"a (GetProcessWorkingSetSize).


 
THE__Scorpion   (2007-03-19 23:21) [2]

Я попробовал GetProcessWorkingSetSize, это не то...
диспетчер  только к NtQuerySystemInformation обращается. Но я не могу к ней обращаться - придется все процессы перебирать - время критический ресурс.


 
Eraser ©   (2007-03-19 23:32) [3]

> [2] THE__Scorpion   (19.03.07 23:21)


> Но я не могу к ней обращаться

почему, вполне можно.. а еще можно через WMI.


 
THE__Scorpion   (2007-03-19 23:38) [4]

Это слишком долго перебирать все процессы....


 
DrPass ©   (2007-03-20 00:17) [5]


> Это слишком долго перебирать все процессы....

В смысле? Разобрать структуру из трех десятков записей - это сложно для компьютера, делающего несколько сот миллионов операций в секунду?


 
homm ©   (2007-03-20 00:38) [6]

> Необходимо получить количество памяти занимаемое чужим процессом.
> Для этого я использую функцию VirtualQueryEx,

Все правльно делаешь.


> но почему-то зарезервированная commit память гораздо больше,
> чем ...

... чем выделеная в данный момент память в физической памяти, что и показывает диспетчер задач. Все верно.

Диспетчер задач - Вид - Выбрать столбцы - Объем виртуальной памяти.


 
THE__Scorpion   (2007-03-20 15:15) [7]


> В смысле? Разобрать структуру из трех десятков записей -
>  это сложно для компьютера, делающего несколько сот миллионов
> операций в секунду?

Сложно....В моем проекте. Это действие должно повторятся каждые 10-100 мс. Для достаточно большого количества потоков(максимум 100).
Может быть оно конечно успеет выполнится. Но ведь не разумно расходовать ресурсы проца на перебор очереди процессов, когда нужна инфа по одному процессу и его хендл и id известны.
Наверняка есть функция работающая по хендлу.


> homm ©

Спасибо за разъяснение, но все таки можно ли получить объем фактической используемой памяти, а не виртуальной не прибегая к NtQuerySystemInformation ?


 
homm ©   (2007-03-21 01:59) [8]

> но все таки можно ли получить объем фактической используемой
> памяти, а не виртуальной

Фактически испльзуемая память ни о чем не говорящий, зависящий от ряда причин, не нужный никому параметр. Просто компания майкросовт это понимает, потому и вывила именно его в диспетчере задачь :)



Страницы: 1 вся ветка

Текущий архив: 2007.09.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-1182747433
Dmitry_177
2007-06-25 08:57
2007.09.09
TWebBrowser без полос прокрутки


2-1187296490
new_imat
2007-08-17 00:34
2007.09.09
проблема с алгоритмом


15-1187168756
Romkin
2007-08-15 13:05
2007.09.09
Нужен компонент или идея


15-1187131986
iZEN
2007-08-15 02:53
2007.09.09
Что нужно сделать в Windows, чтобы запретить установку


6-1168957122
Black_Live
2007-01-16 17:18
2007.09.09
Насколько эти ключи реестра актуальны при сетевой защите?