C++获取当前进程所占用的内存大小
时间: 2024-12-19 18:24:55 浏览: 40
C++ 获取进程CPU占用率
在C++中,你可以通过内核接口来获取Linux进程中内存信息。一种方法是使用`/proc/pid/status`文件,这是Linux系统提供的一种简单方式,但请注意,这可能不是最准确的内存使用情况,因为它不包括共享库的内存。另一种更直接的方法是使用系统调用,如`GetProcessMemoryInfo`[^1],该函数允许你获取进程的详细内存统计,包括虚拟内存(Virtual Memory)和物理内存(Commit Charge)。
以下是如何使用`GetProcessMemoryInfo`来获取当前进程的内存占用量的一个示例:
```cpp
#include <windows.h>
#include <processthreadsapi.h>
void get_memory_info(DWORD process_id) {
PROCESS_MEMORY_COUNTERS pmc;
if (GetProcessMemoryInfo(process_id, &pmc, sizeof(pmc))) {
DWORD total_private = pmc.PrivateUsage;
// 处理其他内存信息...
printf("Total private memory usage: %I64u bytes\n", total_private);
} else {
// 处理错误...
}
}
int main() {
DWORD my_pid = GetCurrentProcessId();
get_memory_info(my_pid);
return 0;
}
```
在这个例子中,`PrivateUsage`字段表示进程的私有工作集大小,即进程自己使用的内存,不包括共享内存和其他进程的部分。
阅读全文