xzhlksh

Results 12 comments of xzhlksh

@SuperMonster003 大佬您好,今天更新了2.2.2,但是横屏下收取还是不正常。我采用的是好友列表滑动的模式,横屏启动后列表中大部分小手图标无法被识别到。即使那一小部分能识别到有能量的好友,点进去虽可以正常采集,但是采集数据也没有被统计,具体日志如下: ![Uploading Screenshot_2021-11-02-00-09-49-606_org.autojs.aut.jpg…]()

![Screenshot_2021-11-02-00-09-49-606_org autojs aut](https://user-images.githubusercontent.com/4231006/139705296-6af6c9f2-4e3c-498b-a0ef-c4e8ecd174a4.jpg) 刚才图片上传失败了,不好意思

大佬,请问是鸽了么?

这个,,从2.2.0版本开始,确实需要每天定期用memory tool重置一下脚本,否则比较容易512M内存和栈溢出

那我找aj的作者再问问,多谢回复

我看了一下内存泄露的位置,貌似ext_image模块里面的capt函数里的 _copy局部变量因为不是captureScreen方法存放image,并且要被return,所以没有办法对该变量进行手动内存回收? 这个问题我尝试在ext_image开头用let声明了一个全局变量并赋值为null,然后在capt()函数中把所有_copy替换为该全局变量。同时每次进入capt()函数以后都先判断这个全局变量是否为null(或者判断是否为ImageWrapper),如果非null(或者为ImageWrapper)则执行一次recycle内存回收,再执行原有语句和逻辑。~~另外在this.reclaim之后也对_capt执行一次内存回收。~~ ~~另外_chkByImgTpl()函数中_capt没有执行recycle();~~ _thdOcr()函数4727行存在_capt = _clip = _stitched = null;语句,也都没有执行recycle()? 我看这两处也报了内存溢出,也都私改了一下加上了recycle()。 这么一通乱操作后,再执行回收能量球的任务时,能正常采集能量,log里也没有内存溢出的日志了,不知道是不是真的不会溢出了。我明天早上高强度持续收能量的时候再测一下私改代码后的效果。

难受了,ext-image里还有几个lambda函数里也有类似的内存溢出。 大概知道内存溢出的意思了,就是小函数里获取到图片,但是没有释放就直接return。实际执行return操作的时候,内存中并没有释放image资源,只是copy了一份返回给函数调用者。因此在函数调用者里执行recycle只回收了copy,并不能完全避免内存泄露。 解决方案也不是没有,就是给所有return image资源的函数里都分配一个全局变量,把image赋值给这个全局变量再把这个全局return掉,以后每次进函数前对该全局变量做类型判断以后再recycle。最后退出脚本的时候再对这些全局变量最后做一次recycle。 不知道我理解的对不对?毕竟我平时干活只写cpp和py代码,js只能看懂简单语法。。。

感觉这几版以后,没再遇到内存溢出导致收能量挂掉的问题了

同楼上,2.1.10版本内存溢出又回来了。。