作者:Spectator
Empty.exe是一个来自于Microsoft Windows Server 2003 Resource Kit Tools中的小工具,可以用来释放指定应用程序的Working Set(工作集)。
什么是工作集呢?工作集就是在某个时间内,一个进程可以直接访问到的物理内存(不发生缺页中断),简单的可以将其等同于占用的内存空间,而在Windows的任务管理其中,也确实是这样表示的(如图1)。
图1 Empty.exe访问物理内存
图2 Empty.exe的作用
(如图2)可以看出,Empty.exe是释放处于后台的进程所占用内存空间,以此增加当前活动的进程可以使用的内存空间而达到优化性能的目的,类似于内存整理。但与某些内存整理工具相比,它是直接释放对应进程的内存。强于某些将数据直接转移至虚拟内存中而导致硬盘狂转的工具。
可惜的是,Empty.exe是一个命令行工具,日常使用不方便,那么就用AutoIt来完善一下吧。
AutoIt是一种脚本语言,最初是因为可以模拟鼠标键盘操作而最为一种软件安装辅助工具为人所知,经过不断的版本升级,现在已经具有丰富的功能却不失轻巧。能够完成执行程序、VBS/JS脚本,鼠标、键盘、窗口操作,甚至可以创建GUI界面,详细信息可以访问其官方网站。
“工欲善其事,必先利其器”,任何编程语言都需要一个开发环境来方便代码输入,调试。对于AutoIt来说,目前较好的编辑器是SciTE,其中不仅包含SciTE编辑器本身,2006-6-26的1.70版中还包括AutoIt v3.1.1.0 及BETA 3.1.1.127以及很多有用的工具,汉化补丁的版本是1.68,不影响使用,如果是第一次使用,建议打汉化补丁熟悉一下,以下介绍也是以中文版为例。
程序思路如下:
1. 获取整理前内存占用情况;
2. 列举当前的所有进程,将其product id存入数组中;
3. 构造循环语句,顺序执行empty.exe释放指定pid进程的内存并略过pid为0及4的系统进程,格式如下:
Empty.exe pid
例如:empty.exe 3640 (释放pid为3640的进程,即图2中的maxthon.exe
4. 获取整理后内存占用情况;
5. 检查目标系统是否允许气泡式弹出提示,以便使用对应的提示信息显示整理前后的对比情况。
点击下载源代码
将以上代码输入后,依次点击菜单栏中的工具→执行(或快捷键F5)就可以进行程序测试,如果代码输入没有错误,就会执行程序,效果如下(如图3)。
图3 进行效果
这里顺便将SciTE附带的工具大概介绍一下:
1) SyntaxCheck Prod(正式版语法检查器)
2) SyntaxCheck Beta(Beta版语法检查器)
3) FunctionPopUp(语法速查)
4) AU3Info(非常实用的工具,获取窗口及其对象属性工具,一般用于窗口操作)
5) AU3Recorder(键盘、鼠标点击自动记录器)
6) AutoitMacroGenerator(类似AU3Recorder,至少笔者没发现有什么不同)
7) Tidy AutoIt Source(代码规范工具,其整理完后的代码具有更好的可读性)
8) CodeWizard(提示窗口、信息、Splash生成工具)
9) GuiBuilder(GUI界面生成工具)
10) Koda(FormDesigner)(表格生成工具)
11) SciTe Config(编辑器配置工具,可以切换当前使用的AutoIt版本,指定字体之类)
12) Snippet Holder(代码片段收集工具)
运行没有错误后就可以将其编译为EXE程序使用了,点击菜单栏工具→编译(或快捷键Ctrl+F7),弹出窗口需要依次指定Aut2Exe.exe及待编译的Au3文件路径后出现Compile AutoIt3 Script窗口:
1) Aut2exe标签:
AUT2EXE:Aut2Exe.exe文件所在路径
Source:AU3源文件所在路径
Target:生成的目标文件名及路径
Icon:指定生成的程序图标
Allow Decompilation:允许反编译
2) Resource Hack标签
如果将Resource Hack的主程序ResHacker.exe放入AutoIt3Wrapper目录下,就可以实现对目标程序源信息、备注、描述、文件版本、版权信息等的修改。
3) Run标签
指定是否进行语法检查。
全部设置完毕后,点击Compile Script就会在Target指定的路径下生成指定的exe文件。
使用AutoIt v3.1.1编译,在Windows XP SP2 EN中测试通过。感兴趣的朋友,可以直接下载此程序,解压至任意目录后执行其中的CleanMem.exe即可。
本例只是AutoIt强大功能的应用的一个小例子,实际上AutoIt还能做的事还有很多,但限于笔者水平及篇幅,就不再累述。最后附上一些有用的链接供读者参考:
1) AutoIt官方论坛(讨论气氛很好,大虾必去)
2) 中文AutoIt论坛(适合初学者)
3) Yonken线上笔记(AutoIt帮助文件汉化,感谢yonken的辛勤劳动)
4) DreamLand AutoIt专题(很多应用示例,涉及的范围也很广,推荐)
5) JUJU猫宽带宝藏论坛-脚本专区(AutoIt辅助软件安装的实例)
[精彩网文]“打工皇帝”唐骏 [建站心得]谈谈中国互联网为何造不出微软和谷歌 [办公软件]设置Excel表格数据隔行、列显示颜色,增强数据的阅… [办公软件]Word无法保存大文档提示虚拟内存不足的解决方案 [操作系统]计算机提示“内存不足”的几种原因介绍 [操作系统]使用盗版微软操作系统导致黑屏的多种解决方法 [操作系统]如何提高(优化)Windows内存的使用效率 [网络技术]如何才能杜绝Windows系统出现内存读写错误(read,w… [电脑技术]解决内存不能为read或written的错误提示 [电脑技术]出现虚拟内存不足的提示(如何修改虚拟内存大小)
|