Привет, это мой код, который печатает физическую память, используемую некоторым процессом, отображаемым в байтах, когда я конвертирую байты в kb с помощью конвертера Google. Значение, указанное в диспетчере задач для использования памяти, меньше результата, указанного моим кодом. Также я хочу знать процессор, используемый одним и тем же процессом? Я нашел этот вопрос в переполнении стека, ИСПОЛЬЗОВАНИЕ ЦП, который дает указания в знании использования процессора, но я хочу знать использование ЦП для некоторого Частного идентификатора процесса вместо текущего процесса, как указано в моем коде. Могу ли я добиться того же самого с кодом,
Любые рекомендации будут оценены.
int main( void )
{
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
DWORD processID = 4696;
// Print information about the memory usage of the process.
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL == hProcess)
return 1;
if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) )
{
printf( "\tWorkingSetSize: %u\n", pmc.WorkingSetSize );
}
CloseHandle( hProcess );
return 0;
}
ЦПУ
Из связанного ответа вы хотите использовать дескриптор "hProcess" вместо дескриптора "self" из образца.
Поверните это:
self = GetCurrentProcess();
GetProcessTimes(self, &ftime, &ftime, &fsys, &fuser);
...
В этом:
GetProcessTimes(hProcess, &ftime, &ftime, &fsys, &fuser);
...
Память
Рабочий набор состоит из Private
(куча, стек и т.д.) + Shared
(обычно кодовых страниц dll/exe). В какой конкретной колонке в диспетчере задач (и какой ОС) вы ссылаетесь?