SysInfo的使用并没有改变

时间:2017-01-25 05:56:08

标签: c++

我对sysinfo freeram的使用有疑问。当我在我的程序中使用它时,它每次报告相同的答案,我认为它应该是动态的,而不是静态的。我打算在整个程序中将它作为测试点来确定瓶颈。示例抄写如下:

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...

每次结果都是一样的。我认为答案应该每次都不同。任何帮助表示赞赏。感谢。

2 个答案:

答案 0 :(得分:0)

由于调用system(),您似乎期望可用内存发生变化。但这并不一定有意义,因为当程序终止时,操作系统会立即回收您用system()调用的程序所使用的内存。因此,在system()调用之前和之后,您希望系统内存利用率大致相同。

答案 1 :(得分:0)

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

每当你想检查空闲内存时,你需要调用'sysinfo(&amp; meminfo)'。