微软有个Clearmem.exe程序用来整体清理内存,不过好象要连续两次运行才能达到效果,速度也不快,关键是在我的机器上现在运行不起来了,老是出错退出。
微软另有个empty.exe程序可以用来对单独的进程进行内存整理,效率很高,但需要知道进程的PID才可以操作。
网上看到别人写过对empty.exe加壳的ClearMem.exe,我找了几个地方都下不到程序,干脆自己也写一个,也是依赖empty.exe的。原理就是设定的时间到了之后就遍历系统所有进程,对于PID大于10的进程(系统进程跳过)逐一调用“empty.exe PID”来完成内在的整理,驻留在后台可以定时执行。
运行后会在系统状状态栏看到程序的图标,右击可以看到相关菜单:
为了减少对系统动态链接库的依赖,用VC6.0来做开发环境,这里把程序和源码都附上,可以自行选用或升级,需要说明的一点是转载时要注明出处。
程序(注意empty.exe要放在同一目录下):ClearMem.zip 源码:ClearMem_src.zip
Tags: C/C++
小巧方便,效果也不错啊。
有才!
今天才发现调用CreateProcess后没有释放句柄资源,结果是开一周下来后内存泄漏了好几百M,低级错误呀。。
加一句“CloseHandle(pi.hProcess)”就好了。