您好,这是我的代码,当我通过谷歌转换器将字节转换为 kb 时,它会打印以字节显示的某些进程使用的物理内存。任务管理器中显示的内存使用值小于我的代码给出的输出。我还想知道同一进程使用的 Cpu? 我在堆栈溢出上发现了这个问题,CPU USAGE它提供了了解 cpu 使用情况的指导,但我想知道某些特定进程 id 的 CPU 使用情况,而不是我的代码中提到的当前进程,我可以使用提供的代码实现相同的目的吗?
如有任何指导,我们将不胜感激。
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 代码页)组成。您指的是任务管理器中的哪个特定列(以及哪个操作系统)?
关于c++ - 如何获取Windows中特定进程使用的物理内存和cpu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23869409/