我希望通过Linux系统调用获取有关不同用户使用的内存和用户正在运行的不同进程的信息,以及有关内存消耗、执行速度等进程的统计信息。
我不想使用free、top等命令,有人能建议怎么做吗?
发布于 2011-04-19 06:15:17
理解内存是如何使用的是很重要的。内存的很大一部分通常是共享的。程序及其库中使用的任何代码都是在不同进程之间共享的。代码作为只读映射到内存中,并由所有进程共享,因此它不属于任何一个用户。某些库,如libc,几乎每个进程都使用,但只在RAM中加载一次。代码较多的程序将比数据较重的程序具有更多的共享内存。
为了回答您的问题,几乎所有像top、free和ps这样的程序获取的信息都来自扫描/proc文件系统。每个进程都有以它的PID命名的自己的文件夹。其中有许多文件,比如显示内存映射的映射、显示启动进程所执行的命令的comm和显示I/O使用情况的io。/proc在Linux内核文档中有一个介绍。
https://unix.stackexchange.com/questions/11590
复制相似问题