调用NT的API SetProcessWorkingSetSize(),清理内存

虚拟内存

bruce | 十月 09,2004 21:21

Win下程序在idle的情况下,把占用的内存腾出,存入虚存,是应该的

From:SMTH

QQ2004II的BasicCtrlDll.dll中提供了一个函数
void __cdecl MinimizeMemory(void);
用以清理qq的内存。cygwin曾说其原理就是调用NT的API SetProcessWorkingSetSize(),
我刚才看了一下,果然如此:

void MinimizeMemory()
{
    OSVERSIONINFOEX osvi;
    GetVersionEx(&osvi);
    if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
    {
       SetProcessWorkingSetSize(GetCurrentProcess(), -1, -1);
    }
}

这样的话,所谓“清理内存”其实就是把idle的内存放到虚拟内存里面去,和MyIM什么的
是一样的。

以上转自:http://blog.9zi.com/post/1/399

阅读更多
文章标签: api qq
个人分类: 编程技巧
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭