,可以通过 pstree 命令查看进程与子进程的关系,但是其输出图形,不太方便获取所有子进程ID,因此打算自己编写 C++ 代码来实现
思路
用伪码表示:
当待查询进程存在:
遍历用户所有进程,...我这里没有采用构建树的方式,而是直接遍历,遇到相关的进程就更新进表中,同时删除掉此进程;当某次遍历后维护进程的链表长度没有发生改变,说明所有子进程已查找完毕;这种计算方式对少量数据情况还是挺快的
代码
查询某个进程的信息比如内存占用.../pm 25201 2 监控 id 为25201的进程,刷新间隔为2秒
结果输出:
2020-09-18 17:37:05 1932
2020-09-18 17:37:07 1932
2020-09-18...17:37:09 1932
这里输出的内存单位是 KB
注意:由于需要进程启动之后才能开启监控,导致进程内存无法从0开始;当进程结束,则监控程序也会退出
关于结果展示,直接将输出结果的第二列和第三列拷贝到...Excel 中,插入折线图即可看到内存随时间变化情况