我有一个关于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...每次的结果都是一样的。我认为答案应该每次都不同。任何帮助都是非常感谢的。谢谢。
发布于 2017-01-25 14:01:20
您似乎希望由于调用system()而更改空闲内存。但这并不一定有意义,因为使用system()调用的程序使用的任何内存都会在该程序终止时立即被操作系统回收。因此,在system()调用之前和之后,您可能会期望系统内存利用率大致相同。
发布于 2017-01-25 15:35:40
unsigned long iFreeMemory = 0;
sysinfo( &meminfo );
iFreeMemory = meminfo.freeram;
std::cout << "Free Ram: " << iFreeMemory << std::endl;每次检查可用内存时,都需要调用'sysinfo(&meminfo)‘。
https://stackoverflow.com/questions/41844406
复制相似问题