版主大大好,我们项目在导出H5版本时碰到了问题,new一个ui出来,然后关闭的时候removeFromeParent后内存不释放,并没有手动retain操作,请问是否存在这个问题?怎么解决呢?谢谢
补充一下,同一套代码导出到安卓、ios、pc均无此问题
我试着调用release和delete,发现内存还是不会回收
是不是必须得把ui缓存起来~那这个如果ui量不叫大的话也扛不住。。
经过几天的研究,这里总结一下给后面的人一些提示,少走些弯路
1、不要频繁new,尤其是ui,因为释放很缓慢,可能是基于js的垃圾回收机制,我们项目之前写的代码每次打开ui都是new一个新的然后关闭的时候remove掉,由于ui比较多,所以这块内存涨的比较快,后来改成缓存了,ui第一次new出来,然后第二次在用直接在内存里拿了
2、最终导致内存爆掉的原因是mp3播放的问题,我排查代码时发现加载mp3时内存会爆掉,我这边的现象是播放一个mp3音乐内存会涨几十兆,重要的是降不下去,如果大家以后遇到内存暴涨的话,这块可以着重看一下
3、图片资源尽量小一些,之前项目1080p的,有些大,改为1136*768后在手机网页上运行没毛病,也很清晰
4、主要还是内存无法按时清理,手动调用gc不好使,gc函数是空的,手动delete也不行