我对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...
每次结果都是一样的。我认为答案应该每次都不同。任何帮助表示赞赏。感谢。
答案 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)'。