কম্পিউটার টিউটোরিয়াল

লিনাক্সে সি++ দিয়ে মেমরি ব্যবহার বের করা


এখানে আমরা দেখব লিনাক্স পরিবেশে সি++ ব্যবহার করে মেমরি ব্যবহারের পরিসংখ্যান কীভাবে বের করা যায়।

আমরা /proc/self/stat ফাইল থেকে সব ডিটেইল পেতে পারি। এখানে আমরা ভার্চুয়াল মেমরি স্ট্যাটাস এবং রেসিডেন্ট সেট সাইজ (RSS) নিচ্ছি।

উদাহরণ

#include <unistd.h>
#include <ios>
#include <iostream>
#include <fstream>
#include <string>
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); // proc ডিরেক্টরি থেকে ইনফো
    // ইনফো পাওয়ার জন্য কিছু ভেরিয়েবল
    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; // বাকি গুলো নয়
    stat_stream.close();
    long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // x86-64 সাধারণত ২MB পেজ ব্যবহার করে
    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
  1. OpenCV-এ C++ ব্যবহার করে FPS মান পাওয়া

  2. লিনাক্সে হাই মেমরি ইউজেজ (High Memory Usage) ফিক্স করুন

  3. ফায়ারফক্স (Firefox) মেমরি ইউজেজ (Memory Usage) কমানোর পদ্ধতি

  4. লিনাক্সে মাইক্রোসফট অফিস ইনস্টল করার ধাপে ধাপে গাইড