linux C获取进程的CPU和内存
来源:互联网 发布:mac ppt演讲者模式 编辑:程序博客网 时间:2024/06/04 05:38
获取内存开始尝试用getrusage,发现数值一直是0的,,,后面查资料,该函数内存相关的字段还没实现(unmaintained)。
使用statm的,发现rss和data位即使top时看到的内存已经下降了但是数值仍然不变,只能通过resident字段来获取当前进程所占用的内
size (1) total program size
(same as VmSize in /proc/[pid]/status)
resident (2) resident set size
(same as VmRSS in /proc/[pid]/status)
share (3) shared pages (i.e., backed by a file)
text (4) text (code)
lib (5) library (unused in Linux 2.6)
data (6) data + stack
dt (7) dirty pages (unused in Linux 2.6)
FILE *f = fopen("/proc/self/statm","r"); if(f){ i = fscanf(f,"%u%u%u%u%u%u%u", &n_rss,&n_resident,&n_share,&n_text,&n_lib,&n_data,&n_dt); fclose(f); } else { IMIO::instance()->log(INFO, "open /proc/self/statm fail"); } n_rss = n_resident * 4 / 1024; if (n_rss < 1024*1.5 && s_freereq.size() > s_threadnum/3) { return ; } static unsigned int s_CLOCKS_PER_SEC_100 = CLOCKS_PER_SEC / 100; clock_t ct0, ct1; ct0 = clock (); sleep(1); ct1 = clock (); char buf[256]; sprintf(buf, "rss=%u,mshare=%u;freereq=%ld;cpu=%ld;", n_rss, n_share/1024, s_freereq.size(), (ct1 - ct0) /s_CLOCKS_PER_SEC_100);
0 0
- linux C获取进程的CPU和内存
- linux c 实现 获取系统内存,某进程cpu利用率,以及某端口的网络状况
- linux windows下怎么获取当前进程的cpu 和内存的消耗的信息
- linux代码获取某个进程的cpu、内存
- 获取当前进程的CPU使用率和内存使用
- 获取linux的CPU,内存,磁盘的C源代码
- linux查看使用内存和cpu最多的十个进程
- Linux 环境下监控进程内存和CPU的使用率
- linux查看cpu和内存占用的进程
- 获取CPU利用率 系统内存和进程内存
- Unix/Linux获取CPU和内存占用率
- linux下获取cpu和内存使用率
- LINUX下获取CPU和内存使用率
- C++/QT 获取系统CPU、内存、磁盘、进程相关信息
- linux获取当前进程的CPU使用率
- Linux下获取占用CPU内存资源最多的10个进程的方法
- 查看进程的内存和CPU占用
- 获取linux系统的各服务进程与CPU、内存、硬盘空间使用状态
- 在线编程学习网站
- 前端工程师都会喜欢的5个JavaScript库
- 如果Android APP有了遥控器的作用。
- Android学习之路(必看网站)
- jsf的DataModel
- linux C获取进程的CPU和内存
- Session攻击手段(会话劫持/固定)及其安全防御措施
- 20-mysql优化之表的垂直分割和水平分割,读写分离
- CentOS下Git的服务器版安装和使用
- 数据库基本操作(2)
- SQL联合索引 与 单一列的索引
- iOS9 xib加载正常,ios8.4加载缓慢
- android urlconnection get请求异常
- C# Ajax 返回json数据