virus131 Ответов: 1

Получение использования памяти


привет,

Я хочу получить использование памяти моего текущего запущенного процесса и каждого процесса диспетчера задач с помощью приложения VC++ 6.0 MFC. Я не знаю, как это сделать.

Пожалуйста, помогите мне..

Спасибо..

Что я уже пробовал:

Я попробовал какой-то код, который не был полезен. Я ничего об этом не знаю. Пожалуйста, предоставьте какой-нибудь код.

1 Ответов

Рейтинг:
10

Jochen Arndt

Используйте Функция GetProcessMemoryInfo (Windows)[^] для получения информации об использовании памяти процесса.

Чтобы получить информацию для вашего процесса, передайте дескриптор, возвращенный из Функция GetCurrentProcess (Windows)[^].

Для всех процессов вы должны их перечислить: Перечисление Всех Процессов (Windows)[^].

Пример кода для получения информации о памяти всех процессов можно найти здесь: Сбор информации об использовании памяти для процесса (Windows)[^].

Обратите внимание, что создание этих примеров с помощью VC6 может оказаться невозможным, поскольку необходимые заголовочные файлы могут отсутствовать в Windows SDK, установленном VC6. Затем вы должны использовать последнюю версию Visual C++. VC6 был выпущен в 1998 году, а последний пакет обновления-в 2004 году.


virus131

Большое спасибо Йохену Арндту.... Ваш ответ очень полезен. Но мое требование состоит в том, чтобы получить столбец "использование Mem" из Диспетчера задач, то есть общую память, используемую каждым процессом.
Я не знаю, какое поле структуры "PROCESS_MEMORY_COUNTERS" даст эту информацию. Пожалуйста, помогите, если это возможно.

Jochen Arndt

Видишь https://msdn.microsoft.com/en-us/library/windows/desktop/ms684879(v=против 85). aspx:
"Рабочий набор - это объем памяти, физически сопоставленный с контекстом процесса в данный момент времени."

Поэтому вы, вероятно,захотите использовать поле WorkingSetSize.

virus131

Огромное спасибо... Полезный ответ...