前言
大家应该都遇到过一种情况,在实际工作中有时需要程序打印出某个进程的内存占用情况以作参考, 下面介绍一种通过Linux下的伪文件系统 /proc 计算某进程内存占用的程序实现方法.下面话不多说了,来一起看看详细的介绍吧。
实现分析
首先, 为什么会有所谓的 伪文件 呢. Linux系统的文件类型大致可分为三类: 普通文件, 目录文件和伪文件. 伪文件不是用来存储数据的, 因此这些文件不占用磁盘空间, 只是存在于内存中. /proc 让你可以与内核内部数据进行交互, 获取有关进程的有用信息.
下面主要介绍一下 /proc 下面的四个文件: /proc/stat , /proc/meminfo , /proc/<pid>/stat , /proc/<pid>/status .
/proc/stat 存放系统的cpu时间, 该文件包含了所有cpu活动的信息.
/proc/meminfo 存放系统的内存信息, 通过文件中各个变量的名字便可知其代表的信息.
/proc/<pid>/stat 存放某个进程的cpu信息
/proc/<pid>/status 存放某个进程的cpu信息以及一些综合信息
以上数据都可以通过文件读取的方式来获取. 根据自己实验的需要可以计算相应的数据, 比如 pmem = VmRSS/MemTotal*100 等等.
示例代码
下面只是贴出一个简单的获取某进程当前时刻所占用的实际内存的c代码实现例子.
测试文件:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.linuxidc.com/Linux/2017-12/149850.htm