2017-01-25 23 views
0

我有一個關於sysinfo freeram用法的問題。當我在程序中使用它時,它會每次報告相同的答案,我認爲它應該是動態的,而不是靜態的。我計劃在整個計劃中將其作爲測試點來確定瓶頸。實施例存根列如下:SysInfo用法不變

test.h

struct sysinfo meminfo;

TEST.CPP

unsigned long iFreeMemory = 0; 
iFreeMemory = meminfo.freeram; 
std::cout "Free Ram: " << iFreeMemory << std::endl; 
system(run any program....); 
iFreeMemory = meminfo.freeram; 
std::cout << "Free Ram: " << iFreeMemory << std::endl; 
etc... 

結果是每次相同。我會認爲每次答案都會有所不同。任何援助表示讚賞。謝謝。

+0

你確實在調用'sysinfo()'?你的代碼看起來像你沒有。 –

回答

0

您似乎預計空閒內存會因撥打system()而發生變化。但是這並不一定有意義,因爲無論你用system()調用的程序使用什麼內存,當程序終止時,操作系統都會立即回收它。因此,在調用system()之前和之後,您會希望系統內存利用率大致相同。

0
unsigned long iFreeMemory = 0; 
sysinfo(&meminfo); 
iFreeMemory = meminfo.freeram; 
std::cout << "Free Ram: " << iFreeMemory << std::endl; 

你需要調用「SYSINFO(& meminfo中)」每一次當你要檢查可用內存。