2017-01-25 5 views
0

sysinfo freeram 사용법에 대한 질문이 있습니다. 내 프로그램에서 사용할 때 매번 똑같은 대답을보고합니다. 정적이 아니라 동적이라고 생각합니다. 병목 현상을 확인하기 위해 내 프로그램 전체에서이를 테스트 포인트로 사용할 계획입니다.SysInfo 사용법이 변경되지 않습니다

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

결과 매번 동일

test.h

struct sysinfo meminfo;

Test.cpp에 예하여 아래 스텁. 나는 대답이 매번 달라야한다고 생각할 것이다. 모든 도움을 주시면 감사하겠습니다. 감사.

+0

실제로'sysinfo()'를 호출하고 있습니까? 당신의 코드는 그렇지 않은 것처럼 보입니다. –

답변

0

무료 메모리가 system()으로 변경되어 변경 될 것으로 예상됩니다. 그러나 그것은 반드시 의미가있는 것은 아닙니다. system()으로 호출하는 프로그램이 사용하는 메모리가 무엇이든 프로그램이 종료 될 때 즉시 OS에서 회수되기 때문입니다. 따라서 system() 호출 전과 후에는 시스템 메모리 사용률이 거의 같을 것으로 예상됩니다.

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

당신은 당신이 사용 가능한 메모리를 확인하고 싶을 때 '(& meminfo 파일) SYSINFO'때마다 호출해야합니다.

관련 문제