什么“ru_maxrss”在getrusage中意味着什么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么“ru_maxrss”在getrusage中意味着什么相关的知识,希望对你有一定的参考价值。

我在我的macOS Sierra上编译并运行以下c ++代码test.cpp

#include <iostream>
#include <sys/resource.h>

using namespace std;

int main() {
    int a = 1;
    struct rusage r_usage;
    getrusage(RUSAGE_SELF, &r_usage);
    cout << "Memory usage = " << r_usage.ru_maxrss << endl;
    int b = 2;
    return 0;
}

然后得到:

➜  Desktop git:(master) ✗ ./test
Memory usage = 663552

然后我发现ru_maxrss的单位是千字节here,所以该程序使用663552千字节?但我只是创建了一个整数。

另一个问题是:ru_maxrss是否计算int b = 2?或者只计算调用ru_maxrss的行之前的内存使用量。

答案

在OSX下,单位是字节。

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man2/getrusage.2.html

以上是关于什么“ru_maxrss”在getrusage中意味着什么的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C++ 在运行时获取内存使用情况?

程序运行时间测试 - 使用系统函数 getrusage 获取程序运行时间

MQTT连接在iOS中意外关闭的可能原因是啥?

PHP MySQL - 为啥存储过程调用在 PHP 代码中意外结束

开玩笑报道中意外发现的分支

js保存网页中意部分为图片