运维监控程序中经常需要根据一个进程号pid去监控实时的cpu和内存占用,以下整理了一个C++实现的简单例子,并封装为方便跨平台调用的函数
代码
#include
运行结果
17258
cpu usage ratio: 114.286%
memory usage: 8889.9MB
直接使用GetCpuUsageRatio和GetMemoryUsage就行了,有几个说明
- linux下其实是通过读取并解析/proc目录下进程虚拟文件对应字段值计算得到
- windows下调用系统api计算得到
- 这种打点采样获取cpu和内存占用的方式数据跟用系统管理器查看到的不完全一致