怎么样可以减小占用内存?
我做了一个记账类的软件,用到了SQLite,编译后占用内存要19M,比较大一般要优化一下代码,减少占用内存,有什么好的操作吗? 释放内存的函数Func _ReduceMemory($i_PID = -1)
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle)
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle)
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return
EndFunc ;==>_ReduceMemory 在适当的地方加上 _ReduceMemory(@AutoItPID) 就成了 谢谢了,我在任何一个操作后都添加了这个函数,一下子就小到1-2M了 MARK,,,,,,,,, 好办法!啊 加的太多了,CPU估计又会占用太多了 在适当的地方加上 _ReduceMemory(@AutoItPID) 就成了
afan 发表于 2009-8-15 17:17 http://www.autoitx.com/images/common/back.gif
请问适当的地方主要是哪些地方? 回复 8# zery
比如加载界面完成后。或者自行观察自己的程序进行某项操作时的占用内存情况~ 或者调用Thread.au3中的_RTEmptyWorkingSet函数来实时清理,这个函数会创建一个新线程,在新线程中实时清理内存,所以不会影响其他操作,只要在脚本最前面调用就行了。
#include <Thread.au3>
_RTEmptyWorkingSet() #include <Thread.au3>
_RTEmptyWorkingSet()这个函数怎么在帮助里找不到捏? 或者调用Thread.au3中的_RTEmptyWorkingSet函数来实时清理,这个函数会创建一个新线程,在新线程中实时清理 ...
pusofalse 发表于 2010-11-23 21:13 http://www.autoitx.com/images/common/back.gif
这个和EmptyWorkingSet有区别吗,我在msdn里没找到这个函数,又是未公开的? 学习了,mark一下 P版又公开秘密了,谢谢分享 谢谢,用这个优化了一下我写的收音机,原来12000+K的内存占用现在播放时8000+K,停止播放,只有500+K
页:
[1]
2