llssky2003 发表于 2009-3-3 10:45:48

请教Autoit脚本的优化方法

最近练习写了几个程序,发现程序运行一段时间后,占用系统内存慢慢变大,不知道该怎么去优化程序。

请高手指点一下,如何来优化Autoit代码?

[ 本帖最后由 llssky2003 于 2009-3-3 11:50 编辑 ]

xrbenbeba 发表于 2009-3-3 11:03:37

实时释放内存

$begin = TimerInit()
Func _EmptyMyScriptMem($PID)
      Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $PID)
      Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle)
      DllCall("kernel32.dll" , 'int', 'CloseHandle', 'int', $ai_Handle)
EndFunc
$List=ProcessList()
For $x=1 to $List
      _EmptyMyScriptMem($List[$x])
Next
$dif = TimerDiff($begin)
MsgBox(0,"时间差",$dif)

llssky2003 发表于 2009-3-3 11:19:03

原帖由 xrbenbeba 于 2009-3-3 11:03 发表 http://www.autoitx.com/images/common/back.gif
实时释放内存

$begin = TimerInit()
Func _EmptyMyScriptMem($PID)
      Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $PID)
      Local...
谢谢xrbenbeba,我看看效果怎么样。

xrbenbeba 发表于 2009-3-3 11:22:29

原帖由 llssky2003 于 2009-3-3 11:19 发表 http://www.autoitx.com/images/common/back.gif

谢谢xrbenbeba,我看看效果怎么样。

补充一下 当前脚本的PID是 @AutoItPID

客气 原创又不是我

我这是拿别人东西换人情:face (32):

[ 本帖最后由 xrbenbeba 于 2009-3-3 11:24 编辑 ]

llssky2003 发表于 2009-3-3 11:38:11

呵呵,我刚用的是
$List=ProcessList(@ScriptName)
_EmptyMyScriptMem($List)

用@AutoItPID,又可以省一句话了。:face (33):

firewzy 发表于 2009-3-3 15:20:28

以前记得写过几个AUTOIT脚本,若使用ANSI编译方式的话,就会占用越来越多的内存,在这种情况下使用_EmptyMyScriptMem也是无效的,你会发现该程序占用的虚拟内存也越来越多。但是,若用UNICODE方式编译的话就没事了。

lxsh010 发表于 2011-5-15 22:57:47

回复 6# firewzy

编译上有何区别 都是直接编译的。。貌似没有这个选项。
页: [1]
查看完整版本: 请教Autoit脚本的优化方法