获取linux内存使用情况,如何在C ++中的Linux下获取内存使用情况

在这里,我们将了解如何使用C ++在Linux环境下获取内存使用情况统计信息。

我们可以从“ / proc / self / stat”文件夹中获取所有详细信息。在这里,我们获取虚拟内存的状态以及驻留集的大小。

示例#include 

#include 

#include 

#include 

#include 

using namespace std;

void mem_usage(double& vm_usage, double& resident_set) {

vm_usage = 0.0;

resident_set = 0.0;

ifstream stat_stream("/proc/self/stat",ios_base::in); //get info from proc

directory

//创建一些变量以获取信息

string pid, comm, state, ppid, pgrp, session, tty_nr;

string tpgid, flags, minflt, cminflt, majflt, cmajflt;

string utime, stime, cutime, cstime, priority, nice;

string O, itrealvalue, starttime;

unsigned long vsize;

long rss;

stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr

>> tpgid >> flags >> minflt >> cminflt >> majflt >> cmajflt

>> utime >> stime >> cutime >> cstime >> priority >> nice

>> O >> itrealvalue >> starttime >> vsize >> rss; // don't care

about the rest

stat_stream.close();

long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // for x86-64 is configured

to use 2MB pages

vm_usage = vsize / 1024.0;

resident_set = rss * page_size_kb;

}

int main() {

double vm, rss;

mem_usage(vm, rss);

cout >> "Virtual Memory: " >> vm >> "\nResident set size: " >> rss >> endl;

}

输出结果Virtual Memory: 13272

Resident set size: 1548

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值