请教 关于AU3 脚本释放内存代码的原理
;对脚本内存进行释放Func _EmptyScriptMem()
;~ 无论您是使用或者转载,请保留原作者(kn007)信息,谢谢!
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, _
'int', False, 'int', @AutoItPID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle)
DllCall("kernel32.dll" , 'int', 'CloseHandle', 'int', $ai_Handle)
EndFunc这段代码是释放脚本内存的代码,是kn007 写的,在使用时确实是释放了进程中的内存,而且效果很显著。
但是我本人不明白原理,搞VB的同事,10年工作经验,他告诉我说,释放内存其实就是压缩到虚拟内存中,我不是很相信,所以和各位高手讨教讨教,问问是不是这样的?
希望大伙能说说自己的看法! 我也想知道,帮你顶起 我也想知道,我先去baidu一下。同时等高手。。。 这个函数关键是这里,调用psapi.dll里面的函数EmptyWorkingSet将脚本的内存工作空间清空(释放),从而减少系统内存的占用。
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle) 能找出不是压缩到虚拟内存的证据么?有图有真相,希望管理员置顶进行讨论!
页:
[1]