LinuxC++记录程序物理内存占用量
时间: 2024-11-22 13:29:24 浏览: 11
JAVA 进程在64位LINUX下占用巨大内存的分析.doc
5星 · 资源好评率100%
在Linux环境下,通过C++记录应用程序物理内存占用量通常涉及使用`/proc/pid/status`文件或者第三方库如`psutil`。这里我们将介绍一种基本的方法:
1. 使用`/proc/pid/status`(内核接口)[^1]:
```c++
#include <fstream>
#include <string>
std::ifstream status("/proc/<your_pid>/status", std::ios::in);
if (status.is_open()) {
std::string line;
while (getline(status, line)) {
if (line.find("VmSize:") != std::string::npos) {
size_t pos = line.find(" kB");
long long mem_usage = std::stoll(line.substr(0, pos));
// mem_usage now holds the memory usage in kilobytes
}
}
status.close();
}
```
这里的`<your_pid>`应替换为你要监控的进程ID。
2. 使用第三方库`psutil`:
```c++
#include <iostream>
#include "psutil.hpp"
int main() {
try {
psutil::process process(<your_pid>);
const auto& stats = process.memory_info();
std::cout << "Memory usage: " << stats.rss() << " bytes" << std::endl; // RSS (Resident Set Size)
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个示例中,你需要先安装`psutil`库才能编译运行。
阅读全文