কম্পিউটার

কিভাবে C++ ব্যবহার করে রানটাইমে মেমরি ব্যবহার পেতে হয়?


আমরা রান টাইমে ভার্চুয়াল মেমরি ব্যবহার বা রেসিডেন্ট সেট সাইজ ইত্যাদির মতো মেমরি ব্যবহার পেতে পারি। সেগুলি পেতে আমরা কিছু সিস্টেম লাইব্রেরি ব্যবহার করতে পারি। এই প্রক্রিয়া অপারেটিং সিস্টেমের উপর নির্ভর করে। এই উদাহরণের জন্য, আমরা লিনাক্স অপারেটিং সিস্টেম ব্যবহার করছি।

তাই এখানে আমরা দেখব কিভাবে C++ ব্যবহার করে লিনাক্স এনভায়রনমেন্টের অধীনে মেমরি ব্যবহারের পরিসংখ্যান পেতে হয়। আমরা “/proc/self/stat” ফোল্ডার থেকে সমস্ত বিবরণ পেতে পারি। এখানে আমরা ভার্চুয়াল মেমরি স্ট্যাটাস এবং রেসিডেন্ট সেট সাইজ নিচ্ছি।

উদাহরণ

#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); //get info from proc
   directory
   //create some variables to get info
   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

  1. কিভাবে C++ ব্যবহার করে OpenCV-এ একটি উপবৃত্ত আঁকবেন?

  2. কিভাবে C++ ব্যবহার করে OpenCV-এ একটি বৃত্ত আঁকবেন?

  3. কিভাবে C++ ব্যবহার করে OpenCV-এ একটি লাইন আঁকবেন?

  4. কিভাবে C++ প্রোগ্রাম ব্যবহার করে একটি প্রোগ্রাম চালু করবেন?