我試圖跟蹤我的應用程序正在採取多少內存。所以我在讀/proc/self/statm
。statm不報告更新VmSize
#include <iostream>
#include <fstream>
void print_mem(){
std::ifstream proc_stream("/proc/self/statm");
long long VmSize = 0, VmRSS = 0, Share = 0;
proc_stream >> VmSize >> VmRSS >> Share;
proc_stream.close();
std::cout << VmSize << " " << VmRSS << std::endl;
}
struct C{
int a[256];
};
int main(){
print_mem();// first call
C* c = new C;
print_mem();// second call
return 0;
}
我期待VmSize會有一些增長。但是我看到它總是報告相同的VmSize,VmRSS。不會因爲我分配c
而改變?
它是報告。我只是試圖malloc()500,000字節(〜0.5 MB)和VmSize從874跳轉到998. – 2013-05-07 17:19:41
我設置''[4096]'而不是'256'但我沒有看到任何改變。但是,如果我將其更改爲'a [1024 * 1024]',我看到從'756'改爲'1782'。 – 2013-05-07 17:23:48