如何以编程方式获取当前程序的内存使用情况?

时间:2020-04-16 17:33:40

标签: c++ linux memory rhel

我想获得有关C ++程序的内存使用情况的一些信息。我这样做的方法是访问/proc/self/stat并打印虚拟和常驻集大小。

您可以找到示例here

这是一个好方法吗?我正在访问的信息有多准确*?

有人可以推荐一种更好的方法来以编程方式测量内存使用情况吗?

*询问,因为我得到了意外的内存使用突然跳跃。我的期望是该信息是完全准确的。

操作系统:我正在基于RHEL的docker容器中运行。

其他信息:如果我用docker run -m限制容器的内存使用,则打印的内存大于我设置的限制。

1 个答案:

答案 0 :(得分:2)

如何以编程方式获取当前程序的内存使用情况?

没有标准方法可以获取C ++中程序的内存使用情况。

“内存使用”的概念本身有些含糊,可能意味着不同的含义。根据您的意思,可能有或没有特定于系统的方式来获取信息。

我这样做的方法是访问/proc/self/stat

这是个好方法吗?

我不这么认为。据我所知,/ proc文件系统不是可移植的。在POSIX系统上使用getrusage函数。