linux 如何通过PID或者程序名 得到该进程的CPU使用率以及内存使用率 用C++实现

linux 如果通过PID或者程序名 得到该进程的CPU使用率以及内存使用率 用C++实现
最好有代码 具体细说也行。越详细越好
尽量 能适用于HP-UX AIX系统 只针对linux也行。

第1个回答  推荐于2016-06-04
进程XXX占用了多少内存?这是个经常被问到,也经常被答错的问题。Linux进程的内存分配是个比较复杂的话题,而Linux上的工具往往把这个问题过分简单化,因此引出不少误解和困惑。首先把ps, top这类工具扔掉,然后看这么一个简单程序:
[root@pczou pczou]# cat ./prog.c
#include <stdio.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

#define ONEM (1024*1024)

int func()
{
char s[16*ONEM];
char* p;
p = malloc(32*ONEM);
pause();
return 0;
}

int main()
{
printf("pid: %d\n", getpid());
func();
return 0;
}

其中func()这个函数分配了32MB的内存,以及16MB的堆栈

原文见:http://pczou.bokee.com/5944730.html

参考资料:http://pczou.bokee.com/5944730.html

本回答被提问者采纳
第2个回答  2011-02-13
每个进程在/proc目录下都有一个以进程号命名的目录.
在该目录下有exe@文件,该文件是一个链接(应该是软链接)文件,它指向的路径就是该进程的全路径.用readlink函数读exe@文件返回该进程的全路径.
第3个回答  2011-02-14
使用Linux系统下的性能管理器,很直观!
相似回答