如何查找“进程”占用的大小/内存空间[重复]

Posted

技术标签:

【中文标题】如何查找“进程”占用的大小/内存空间[重复]【英文标题】:how to find size /memory space occupied by a "process" [duplicate] 【发布时间】:2014-06-25 09:04:33 【问题描述】:

我被要求编写一个 c/cpp 程序来查找面试中任何进程的大小。谁能告诉我这是如何实现的?

p.s.- 在将 que 标记为重复之前 - 请仔细阅读:我已经询问过如何通过 c/cpp 程序 找到,而不仅仅是使用任何 unix/linux shell 命令

【问题讨论】:

使用pmap? 已经有类似的问题了[这里][1][1]:***.com/questions/1558402/… 【参考方案1】:

它不是标准 C++ 的一部分,因此取决于操作系统。

例如在 linux 上通过访问 /proc filesystem 来完成。

当然,另一种选择是调用像 ps 这样的系统命令并解析其输出(这就是我在 Python 脚本中所做的)。

然而,能够解释你能得到的数字是另一个重要的问题。

【讨论】:

【参考方案2】:

您可以使用getrusage。但请记住,它并非在所有系统上都实现。

或者通过阅读/proc/[pid]/statm

否则,请尝试these 之一(命令行选项)。

【讨论】:

【参考方案3】:

使用

size <executable> 

输出

   text    data     bss     dec     hex filename
1361623    1984    2708 1366315  14d92b <executable>

它显示文本、数据、bss 和总大小

【讨论】:

以上是关于如何查找“进程”占用的大小/内存空间[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何获得一个存活的java对象的内存占用大小?

查看占用内存最多的进程

linux系统内存达多少会杀掉进程

多级页表如何节省内存

一个Java对象到底占用多大内存

Linux进程内存如何管理?