Linux 下memory 查看

  1. Linux 下可以通过free-m 查看内存使用情况

free 命令列出如下的

MemTotal = available + used

available = free + shared + buff/cache

所以查看系统内存释放情况,只需要查看 avaliable 即可

  1. 在C++ 里面可以通过如下代码实现

#include <fstream>
#include <string>
#include <iostream>
#include <vector>

void getMemoryInfo(std::ofstream &ostream, bool first = false, std::string type="Type") {
    if (!ostream.is_open()) {
        std::cout << "invalid out file" << std::endl;
    }
    std::ifstream istream;
    istream.open("/proc/meminfo", std::ios::binary);
    std::string line;
    int index = 0;
    std::vector<std::string> title;
    std::vector<std::string> value;
    
    while(getline(istream, line)) {   
        index ++;
        std::string flag = ":";
        int position = line.find_first_of(flag);
        title.push_back(line.substr(0, position));
        value.push_back(line.substr(position+1, line.length() - 3 - position));
        std::cout << title[title.size()-1] << "," << value[title.size()-1] << std::endl;
        if(index == 15) break;
    }

    if (first) {
        ostream << "Type" << ",";
        for (auto k: title) {
           ostream << k << ","; 
        }
        ostream << std::endl;
    }
    ostream << type << ",";
    for (auto k: value) {
        ostream << std::atof(k.c_str()) / 1024 << ","; 
    }
    ostream << std::endl;
}  
  1. /proc/meminfo 里面的信息如下

关于上面内存字段的含义,如下所示:

MemTotal:        7959868 kB    --->内存总量
MemFree:         3900076 kB    --->没有被使用过的内存
MemAvailable:    5813320 kB    --->目前系统可用的内存
Buffers:           
30304 kB    --->缓冲区内存数
Cached:          1169388 kB    --->缓存区内存数
SwapCached:        34104 kB    --->内存总量
Active:          1122756 kB    --->最近被使用过的,非必要不会释放的内存总量
Inactive:         637568 kB    --->最近使用较少的,更具备释放条件的内存总量
Active(anon):     461300 kB    --->最近一次system交换到swap后,正处于active use或曾处于active use的anonymous and tmpfs/shmem内存总量
Inactive(anon):   225728 kB    --->被候选驱逐的 anonymous and tmpfs/shmem 内存总量
Active(file):     661456 kB    --->最近一次system内存回收后,正处于active use或曾处于active use的cache memory总量
Inactive(file):   411840 kB    --->内存总量
Unevictable:       15564 kB    --->内存总量
Mlocked:              48 kB    --->内存总量
SwapTotal:       3979920 kB    --->多个进程共享的内存空间
SwapFree:        2267608 kB    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值