我想获得有关C ++程序的内存使用情况的一些信息。我这样做的方法是访问/proc/self/stat
并打印虚拟和常驻集大小。
您可以找到示例here。
这是一个好方法吗?我正在访问的信息有多准确*?
有人可以推荐一种更好的方法来以编程方式测量内存使用情况吗?
*询问,因为我得到了意外的内存使用突然跳跃。我的期望是该信息是完全准确的。
操作系统:我正在基于RHEL的docker容器中运行。
其他信息:如果我用docker run -m
限制容器的内存使用,则打印的内存大于我设置的限制。
答案 0 :(得分:2)
如何以编程方式获取当前程序的内存使用情况?
没有标准方法可以获取C ++中程序的内存使用情况。
“内存使用”的概念本身有些含糊,可能意味着不同的含义。根据您的意思,可能有或没有特定于系统的方式来获取信息。
我这样做的方法是访问
/proc/self/stat
这是个好方法吗?
我不这么认为。据我所知,/ proc文件系统不是可移植的。在POSIX系统上使用getrusage
函数。