最近在写一个客户端程序,程序的虚拟内存一直增长,由于程序需要一直运行而且不能重新启动,程序运行几天之后PC会报虚拟内存不够,这个Bug一直困扰着我。经过努力,发现了网上的清理内存的程序,自己将API拿来使用了,确实挺管用的。 将自己的解决方法给与自己有相同困扰的人。
void EmptyMySelfWorkingSet()
{
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,GetCurrentProcessId());
if(hProcess)
{
SetProcessWorkingSetSize(hProcess,-1,-1);
EmptyWorkingSet(hProcess);
CloseHandle(hProcess);
hProcess=NULL;
}
}
SetProcessWorkingSetSize和EmptyWorkingSet的头文件和lib为#include <psapi.h> ,#pragma comment (lib,"psapi.lib").