[发明专利]内存优化方法、装置、系统及计算机可读存储介质有效
申请号: | 201711178394.X | 申请日: | 2017-11-22 |
公开(公告)号: | CN108021445B | 公开(公告)日: | 2021-12-28 |
发明(设计)人: | 甄健鹏 | 申请(专利权)人: | 广州品唯软件有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F8/34 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 510000 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 优化 方法 装置 系统 计算机 可读 存储 介质 | ||
本发明公开了一种内存优化方法,包括:在根视图控制器初始化后,将入口类挂载到所述根视图控制器;声明一静态弱引用指针指向所述入口类的实例对象,并通过所述静态弱引用指针获取所述实例对象;将所述实例对象挂载到所述入口类,生成所述实例对象的共享信息;通过所述共享信息使所述根视图控制器的子模块调用所述实例对象,并在调用完成后,关闭所述根视图控制器销毁所述入口类及所述共享信息。本发明还公开了一种内存优化装置、系统及计算机可读存储介质。本发明通过自定义业务流程生命周期的启动与关闭,实现了业务流生命周期管理的有益效果。
技术领域
本发明涉及程序开发领域,尤其涉及一种内存优化方法、装置及计算机可读存储介质。
背景技术
在iOS客户端开发中,随着用户量和业务量的不断增长,app架构也在不断地升级,愈来愈趋向于服务组件化、业务模块化。然而目前所谓的业务模块,只是在代码封装和代码文件管理上相对独立,但在内存管理方面并不是真正的独立,各业务模块的内存实例之间仍然存在相互依赖的关系,这样主要会存在业务模块生命周期过长,容易产生内存泄漏的问题。因业务模块内大部分对象的实例托管在调用方,或者托管在一个内部的静态强引用对象实例上,甚至托管在单例对象上。这样在业务流程执行完毕时,无法自动、及时、可靠地销毁模块内的实例对象,需要人为写代码进行内存清理,一不小心就会出现内存泄漏,导致业务出错,严重的会给企业和用户造成巨大的经济损失。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种内存优化方法,旨在解决现有技术在程序开发过程中,现有架构方案业务模块不能实现业务生命周期自助管理时导致的实例对象无法销毁的技术问题。
为实现上述目的,本发明提供一种内存优化方法,包括以下内容:
在根视图控制器初始化后,将入口类挂载到所述根视图控制器;
声明一静态弱引用指针指向所述入口类的实例对象,并通过所述静态弱引用指针获取所述实例对象;
将所述实例对象挂载到所述入口类,生成所述实例对象的共享信息;
通过所述共享信息使所述根视图控制器的子模块调用所述实例对象,并在调用完成后,关闭所述根视图控制器销毁所述入口类及所述共享信息。
优选地,所述通过所述共享信息使所述根视图控制器的子模块调用所述实例对象的步骤,还包括:
在所述子模块初始化后读取所述共享信息,用以调用所述实例对象并执行业务流程;
将所述业务流程的执行结果返回至所述子模块。
优选地,在接收到所述子模块发送的执行结果接收成功指令时,判定子模块调用完成。
优选地,所述在根视图控制器初始化后,将入口类挂载到所述根视图控制器的步骤之后,还包括:
检查除所述根视图控制器之外其他对象的挂载信息;
在确认所述入口类已挂载在除所述根视图控制器之外的其他对象时,清空所述入口类在所述对象上的挂载。
优选地,所述在根视图控制器初始化后,将入口类挂载到所述根视图控制器的步骤之前,还包括:
调用与所述入口类对应的实例方法以传入参数集和回调集,生成所述入口类的实例对象;
初始化所述入口类的实例对象。
优选地,所述初始化所述入口类的实例对象的步骤之后,还包括:
接收所述根视图控制器的初始化指令并执行所述初始化指令。
优选地,所述接收所述根视图控制器的初始化指令并执行所述初始化指令的步骤之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州品唯软件有限公司,未经广州品唯软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711178394.X/2.html,转载请声明来源钻瓜专利网。