C++ 如何获取windows中特定进程使用的物理内存和cpu?

C++ 如何获取windows中特定进程使用的物理内存和cpu?,c++,c,windows,C++,C,Windows,嗨,这是我的代码,当我通过google converter将字节转换为kb时,它以字节为单位打印某些进程使用的物理内存。任务管理器中显示的内存使用率值小于代码给出的输出值。我还想知道同一进程使用的Cpu是多少? 我在堆栈溢出上发现了这个问题,它提供了了解cpu使用情况的指导,但我想知道某些特定进程id的cpu使用情况,而不是我的代码中提到的当前进程,我能用提供的代码实现同样的效果吗 任何指导都将不胜感激 int main( void ) { HANDLE hProcess; PR

嗨,这是我的代码,当我通过google converter将字节转换为kb时,它以字节为单位打印某些进程使用的物理内存。任务管理器中显示的内存使用率值小于代码给出的输出值。我还想知道同一进程使用的Cpu是多少? 我在堆栈溢出上发现了这个问题,它提供了了解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;
}
CPU

从链接的答案中,您希望使用“hProcess”句柄,而不是示例中的“self”句柄

把这个翻过来:

self = GetCurrentProcess();
GetProcessTimes(self, &ftime, &ftime, &fsys, &fuser);
...
为此:

GetProcessTimes(hProcess, &ftime, &ftime, &fsys, &fuser);
...
内存

工作集由
私有
(堆、堆栈等)+
共享
(通常为dll/exe代码页)组成。您指的是任务管理器(以及什么操作系统)中的哪个特定列?

我指的是任务管理器的内存(专用工作集)和CPU列。