[发明专利]应用程序中对象的管理方法及装置有效
申请号: | 201510152992.4 | 申请日: | 2015-04-02 |
公开(公告)号: | CN104808985B | 公开(公告)日: | 2019-02-19 |
发明(设计)人: | 江波;丁晓亮;李少雄 | 申请(专利权)人: | 小米科技有限责任公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 祝亚男 |
地址: | 100085 北京市海淀区清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 对象 管理 方法 装置 | ||
本公开是关于一种应用程序中对象的管理方法及装置,属于计算机技术领域。该方法包括:在待创建的追踪对象所属的类中,重载创建操作符;基于重载后的创建操作符,创建追踪对象;在全局列表中为追踪对象添加位置表项,位置表项中至少包括追踪对象的创建位置参数。本公开在创建待追踪对象时,在全局列表中为追踪对象添加位置表项,根据位置表项中的创建位置参数,可快速、准确地定位该对象在程序源文件中的创建位置,进而通过更改该对象的创建代码,使该对象占用的内存被释放,保证了应用程序能够顺利运行。
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用程序中对象的管理方法及装置。
背景技术
随着计算机技术的发展,为了实现应用程序的各种功能,应用程序管理员会使用C++在应用程序中创建各种对象。由于所创建的对象影响着应用程序的性能,因此,如何对应用程序中的对象进行管理,成为本领域技术人员较为关注的问题。
目前,对于C++编写的应用程序,需要应用程序管理员手动地对所创建的对象进行管理。当任一对象在应用程序中不再被应用,但该应用程序因创建代码出现错误,导致该应用程序不能被释放,此时应用程序管理员需要先找到该对象的创建位置,进而通过修改该对象创建位置上的代码,使得该对象可释放占用的内存。然而,当应用程序管理员无法找到该对象的创建位置时,该对象所占用的内存将会一直被占用,最终导致应用程序无法运行。
公开内容
为克服相关技术中存在的问题,本公开提供一种应用程序中对象的管理方法及装置。
根据本公开实施例的第一方面,提供一种应用程序中对象的管理方法,所述方法包括:
在待创建的追踪对象所属的类中,重载创建操作符;
基于重载后的创建操作符,创建所述追踪对象;
在全局列表中为所述追踪对象添加位置表项,所述位置表项中至少包括所述追踪对象的创建位置参数。
可选地,所述追踪对象的创建位置参数至少包括所述追踪对象在程序源文件中的文件名称、函数名称及行号。
可选地,所述基于重载后的创建操作符,创建所述追踪对象,包括:
获取所述追踪对象的创建位置参数对应的宏关键字;
将所述创建位置参数对应的宏关键字添加到所述重载后的创建操作符的输入参数中,得到新的输入参数;
基于所述新的输入参数,调用重载后的创建操作符,再调用全局创建操作符,创建所述追踪对象。
可选地,所述方法还包括:
在待创建的追踪对象所属的类中,重载释放操作符;
基于重载后的释放操作符,删除所述追踪对象对应的位置表项。
可选地,所述基于重载后的释放操作符,删除所述追踪对象对应的位置表项,包括:
调用重载后的释放操作符,调用全局释放操作符,再调用所述追踪对象所属的类对应的析构函数;
根据所述析构函数,将所述追踪对象对应的位置表项在所述全局列表中删除。
可选地,所述方法还包括:
为创建位置表项操作与删除位置表项操作设置互斥锁,使得所述创建位置表项操作与删除位置表项操作不能同时进行。
可选地,所述方法还包括:
当检测到所述追踪对象不再被应用,根据所述位置表项中的创建位置参数,定位所述追踪对象在程序源文件中的创建位置。
根据本公开实施例的第二方面,提供一种应用程序中对象的管理装置,所述装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于小米科技有限责任公司,未经小米科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510152992.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通知推送方法和装置
- 下一篇:全局数据的存储、上报方法与装置和系统