优化技巧

 

一、优化录制过程

1、取消“设置-->锚点快照-->允许录制时自动抓点”选项
如果你不需要在录制的时候自动生成相应的抓点代码,取消此选项,能加快录制的速度(对回放无影响)

2、取消“设置-->锚点快照-->允许录制时自动抓图”选项
如果你不需要在录制的时候自动生成相应的抓图代码,取消此选项,能加快录制的速度(对回放无影响)

3、取消“设置-->锚点快照-->允许录制窗体定位”选项
这个功能比较适合桌面窗体,游戏大部份都不需要这个功能,特别是全屏游戏可以取消这个选项,这样无论在录制还是在回放时都会更快

记住更改选项以后,一定要点击对话框右下方的“更新设置”保存更改。

二、优化fap模拟程序

1、取消“显示信息窗口”的选项

大家知道,无论在录制还是回放的时候,模拟精灵都会显示一个浮动的工具栏,上面会输出运行时的提示,
并且可以在脚本中用win.messagePrint("")输出信息到上面。

这个功能方便了我们设计、制作模拟程序,可以及时了解到模拟程序的运行状况。
如果确认一个程序没有任何问题了,应当点击“模拟程序-->信息窗口”选择“否”,然后点击更新。 这样在回放的时候,模拟精灵就不再显示这个窗口,运行的速度会加快,占用的资源更少。

在一些游戏中,强行的在上面显示窗口同样会影响回放的速度(游戏原则上是不允许其他程序在上面显示窗口的),
所以在游戏中,无论是录制还是回放,都要在“模拟程序-->信息窗口”中选择“否”

2、删除不必要的锚点子节点

模拟精灵的架构非常灵活,每个部份都是可以随意组装拆除的,同样锚点里的大部份节点都可以删除。
例如不需要窗体定位的信息,点击“模拟区块-->模块锚点-->目标窗体”,然后点击删除。

删除锚点的节点,可以提升回放运行的速度。

3、清空不需要的锚点属性


锚点中各子节点的属性都可以清空,如果清空的话,模拟精灵就会自动忽略相应的条件。
如果属性是数字值可以设为0表示清空。

如果你把“模拟区块-->模拟锚点-->目标窗体”的“标题包含”属性设为空,
那么模拟精灵在进行窗体定位时就会忽略标题。

如果你把“模拟区块-->应用程序”的程序名字清空,
那么模拟精灵在回放的时候就不会检测目标程序的名字。

三、抓图优化

1、正确的设置抓屏模式、缩小抓图抓点范围

正确的设置抓屏模式,可以提升抓点抓图的效率与录制的速度,具体请参考教程中的说明
虽然模拟精灵的抓点抓图很快,但是仍有优化的余地,默认的抓点抓图都是在全屏范围,应当根据实际需要缩小抓图抓点的范围,这样会加快抓图抓点的速度。

另外,尽可能的清除查找图片的背景部份,保留特征明显的部份,也有利于提高抓点抓图的效率。

2、不要把显示器设置为32位色

人眼几乎分辨不出16位色与32位色的差别,但是32位色却会降低系统性能、影响抓点抓图的效率。

四、LAScript脚本优化

1、不是全局变量应使用local语句声明为局部变量

访问局部变量比访问全局变量快,而且有效的避免了命名冲突。加强了函数的独立性。

2、少量重复使用的代码应封装到函数中。大量重复使用的代码已建立名字空间或库

减少重复的代码不但减少了代码体积、也减少了工作量,同时提高了程序运行的效率。

3、及时释放不再使用的对象


1、.new()系列函数创建的对象,用.del()系列函数删除

如创建了一个图像 img = image.new() 用完了以后要删除 image.del(img)
创建颜色对象,cl = color.new() 用完删除颜色对象 color.del(cl)
创建web窗体 wb = web.new() 删除web窗体 web.del(wb)

element对象虽然不是在LAScript中用new函数显示创建的,
但是在调用wb:getEle("")以后模拟精灵就自动创建了一个新对象,
用完了也要删除element.del(ele),

从javascript或vbscript中传过来的element对象也要调用element.del(ele)删除。
element对象会在页面关闭或转向到其他页面时自动关闭,可以通过 ele:ok()检测是否被关闭。

2、.open系列函数打开的对象,用.close系列函数关闭

例如 f = io.open("c:\\test.txt","r") 用完了要关闭 io.close(f)
导入的dll函数 msg = dll.open("", "", "V()") 用完了要关闭 dll.close(msg);

3、其他方式创建的对象,以及普通的变量,通过赋值为nil释放,

变量可以通过赋值为nil释放,如果所有指向一个对象的变量都被删除,那么该对象在垃圾回收的时候会自动释放,
也可以手工调用collectgarbage()执行垃圾回收。 但是垃圾回收也是需要占用资源的,
最好是让模拟精灵自动管理内存,不要频繁的调用collectgarbage();

由comx插件创建的com对象必须通过赋值为nil释放(如果com对象有关闭对象的函数必须先调用该函数关闭对象)


ape对象,ape:getModule("")返回的区块对象都是不需要关闭的。


所有的对象,如果你不显示的关闭,模拟精灵最终也会安全的自动释放,但是无疑尽早的释放不再使用的对象能减少资源占用。

五、优化系统

模拟精灵的速度虽然够快,可是也需要一个良好的运行环境,
如果你的电脑已经是慢的不堪忍受,这时候你想程序运行的快怎么可能呢。
运行一个游戏,这时候电脑大部份是在超负荷的运行,资源已经很紧张,尤其是一些速度很快占用资源很大的游戏,
这时候如果还要运行其他模拟程序就可能较吃力了。

硬件配置的升级这个我们就不说了,首先要有良好的系统环境,确认电脑上不必要的程序关了,少开一些监控防火墙之类,禁用所有用不上的IE加载项。清除电脑上的恶意程序、隐藏程序。卸载不再使用的程序,清理系统垃圾、禁用不必要的启动项。或者找一些系统优化软件等彻底整理一下系统。

然后把硬盘进行磁盘整理,重启动,你的电脑速度会快很多,当然,运行程序也会更快了。

同时回放时关闭不必要的程序、卸载其他的鼠标键盘类软件,禁用所有监控类软件。