|
|
大漠资源不释放:找图、截图、字库、窗口、图句柄反复堆积,内存持续上涨,最终内存不足;
大漠缓存 / 截图缓冲区溢出:长时间循环找图不清理缓存,图像缓冲区失效,导致识图失效。
1. 每次找图后释放截图缓存(必加)
大漠找图 FindPic / FindPicEx 内部会生成位图缓存,循环不清理会疯狂涨内存
.局部变量 dm, 大漠类
' 每次单次找图完成后执行
dm.ClearCache() ' 清空大漠内部图像缓存,释放位图内存
2. 循环任务定时销毁重建大漠对象(根治长期泄漏)
不要全局单例大漠一直跑 24 小时,每 1~3 小时销毁重建一次大漠,彻底释放全部内存:
.局部变量 运行时长, 整数型
.局部变量 dm, 大漠类
' 循环内判断时长,例如每2小时重启大漠
运行时长 = 取启动时间()
.如果真 (运行时长 > 7200000)
dm.UnBindWindow() ' 解绑窗口
dm.Release() ' 释放大漠COM对象
dm.创建() ' 重新初始化大漠
dm.BindWindow(窗口句柄, "dx2", "dx2", "dx2", 0) ' 重新绑定
运行时长 = 0
.如果真结束
帮你问的豆包 |
|