2011-01-17 3 views
2

RAM에 엄청난 양의 데이터를 할당하는 프로그램을 만들고 있습니다. 이제 RAM에 공간이 부족하면 프로그램이 가상 메모리에 저장되고 페이징 스왑이 수행됩니다. 이것은 매우 느립니다. RAM의 남은 공간을 확인할 수 있습니까? 그리고 시스템이 현재 가상 메모리를 사용하고 있는지 확인할 수 있습니까?Windows에서 RAM의 남은 공간을 확인 하시겠습니까?

이것은 Windows의 C++에 있습니다.

+1

Windows는 사용 가능한 모든 RAM을 적극적으로 사용하려고 시도하며 프로그램을 적극적으로 사용하지 않는 경우이를 디스크 캐시로 채 웁니다. –

+2

Windows의 모든 메모리가 가상입니다. 아마도 프로그램이 디스크에 스왑 아웃되어 있는지 알고 싶을 것입니다. – ThomasMcLeod

+1

@ThomasMcLeod : 알 잖아? 당신은 아마 맞을 것입니다 ... – Karl

답변

4

무료 RAM 용량을 얻으려면 GlobalMemoryStatusEx 함수를 사용할 수 있습니다. RAM이 부족할 때 알림을 받으려면 QueryMemoryResourceNotification 메소드를 사용할 수 있습니다.

+0

windows.h를 사용할 수없는 경우 대안이 있습니까? – Karl

+1

windows.h를 사용할 수없는 이유는 무엇입니까? – ThomasMcLeod

+0

예를 들어, Visual C++ express를 사용하는 경우. 그것 windows.h 함께 오지 않는다, 나는 회상했다. – Karl

1

무료 램을 가지고 있다고해서 프로그램이 페이지되지 않습니다. GetCurrentProcess에 대해 SetProcessWorkingSetSize API를 사용해 볼 수는 있지만 보장을 제공하지는 않습니다. 대신 보장해야하는 VirtualLock을 사용할 수 있지만 저하 된 성능을 얻을 수 있습니다.

관련 문제