如何从程序上获取当前程序的内存使用情况?

问题描述 投票:0回答:1

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

你可以找到一个例子 此处.

这是个好办法吗?我访问的信息*准确度如何?

谁能推荐一个更好的方法来测量内存使用量的程序?

*问,因为我得到的内存使用量出乎意料的突然跳动。我的期望是,信息是完全准确的。

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

其他的信息:我在docker容器内运行,容器基于RHEL。如果我在容器中使用以下功能限制内存使用量 docker run -m我想知道我的C++程序的内存使用情况。

c++ linux memory rhel
1个回答
2
投票

如何通过程序获取当前程序的内存使用情况?

在C++中,没有标准的方法来获取程序的内存使用量。

"内存使用量 "这个概念本身就有些模糊,可以有不同的含义。根据你的意思,可能有也可能没有系统特定的方法来获取信息。

我的方法是通过访问 /proc/self/stat

这是个好办法吗?

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

© www.soinside.com 2019 - 2024. All rights reserved.