如何获得windows中特定进程使用的物理内存和cpu
How to get physical memory and cpu used by particular process in windows?
嗨,这是我的代码,打印一些以字节显示的进程所使用的物理内存,当我通过谷歌转换器将字节转换为kb时。任务管理器中显示的内存使用值小于我的代码给出的输出。我还想知道同一进程使用的Cpu ?我在堆栈溢出,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: %un", pmc.WorkingSetSize );
}
CloseHandle( hProcess );
return 0;
}
CPU
从链接的答案中,你想使用你的'hProcess'句柄而不是示例中的'self'句柄。
把这个:
self = GetCurrentProcess();
GetProcessTimes(self, &ftime, &ftime, &fsys, &fuser);
...
这:
GetProcessTimes(hProcess, &ftime, &ftime, &fsys, &fuser);
...
内存工作集由Private
(堆,堆栈等)+ Shared
(通常是dll/exe代码页)组成。您引用的是任务管理器中的哪个特定列(以及哪个操作系统)?
相关文章:
- 如何在 WSL 2 中读取物理内存?
- 如何区分CPU和内存瓶颈?
- CUDA 数组如何存储在 GPU 内存中?它们在物理上是线性的吗?
- 从 C++11 代码中获取系统内存和 CPU 使用率
- 静态局部变量没有物理内存
- 为什么内存访问时间远远超过CPU缓存大小时会增加
- 无锁单生产者/单消费者循环缓冲区-CPU推测能否打破内存屏障逻辑
- 如何在CPU和内存中优化C 中的重型地图插入
- Linux如何知道过程使用了多少物理内存
- 使用 PID 获取内存和 CPU 使用率
- 评估 C/C++ 内存泄漏时的虚拟与物理内存
- 运算符 new 在大量物理内存可用时引发异常
- std::矢量元素在物理内存中是否连续
- 关于c++指针和物理内存
- 如何在Windows上直接从物理内存中读取
- 虚拟内存或物理内存
- 不断增加物理内存Visual c++ CryptMsgClose和CryptReleaseContext
- 如何获得windows中特定进程使用的物理内存和cpu
- WMI给我不完整的硬件信息(物理内存)
- 限制每个进程的物理内存