[发明专利]一种插件应用程序的内存释放方法及装置在审
申请号: | 202011010175.2 | 申请日: | 2020-09-23 |
公开(公告)号: | CN112131000A | 公开(公告)日: | 2020-12-25 |
发明(设计)人: | 王立军 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 李娟 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 插件 应用程序 内存 释放 方法 装置 | ||
本申请涉及计算机技术,特别涉及一种插件应用程序的内存释放方法及装置。用于及时回收释放插件应用程序占用的内存,该方法为:基于反射机制和用于加载插件应用程序的源文件的第一类加载器,获取到各个源文件,再按照各个源文件记录的内存释放方式,释放对应的源文件占用的内存,以及基于加载插件应用程序的类字节码文件的第二类加载器,在虚拟机中取消第二类加载器的各个关联方的引用关系,令操作系统自动释放类字节码文件占用的内存。这样,便实现了基于插件技术的内存释放方案,能够普遍应用于各类操作系统内的插件化场景中,从而在退出插件应用程序时,大大降低了宿主应用程序的崩溃机率,保证了宿主应用程序的运行性能。
技术领域
本申请涉及计算机技术,特别涉及一种插件应用程序的内存释放方法及装置。
背景技术
相关技术下,为了对各类应用程序进行功能扩展,通常会在宿主应用程序中加载插件应用程序,称为插件化。
例如:以宿主应用程序是游戏程序为例,插件化是大型游戏的常用场景,通常可以在游戏程序中,通过启动直播插件和咨询插件,实现游戏直播和游戏咨询等等相关功能。
然而,在退出插件应用程序后,插件应用程序运行时产生的数据,往往会占用部分内存,称为残留内存,过多的残留内存会影响宿主应用程序的性能,因此需要及时退出。
为了解决残留内存的问题,最常用的解决方案就是多进程方案,即宿主应用程序和插件应用程序分别使用不同的运行进程,这样,插件应用程序产生的残留内存不会对宿主应用程序的运行产生影响。
然而,采用多进程方案却存在以下问题:插件应用程序的运行进程,会令宿主应用程序的运行进程转为后台进程,而宿主应用程序的运行进程往往占用较多内存(如,800M以上),因此,转为后台进程后,会大大增加宿主应用程序的运行进程被操作系统释放的概率,从而造成宿主应用程序的突然退出。
这样,会严重影响宿主应用程序的服务性能,因此需要一种插件应用程序的内存释放方法以克服上述缺陷。
发明内容
本申请实施例提供一种插件应用程序的内存释放方法,用以在退出插件应用程序时,能够及时释放插件应用程序占用的内存。
第一方面,一种插件应用程序的内存释放方法,包括:
基于反射机制和第一类加载器,确定所述插件应用程序的加载路径,所述第一类加载器用于加载所述插件应用程序的源文件;
基于所述插件应用程序的加载路径,获得所述插件应用程序包含的各个源文件,按照各个源文件中记录的内存释放方式,分别释放对应的源文件占用的内存;
在虚拟机中释放第二类加载器加载的各个关联方的引用关系,其中,所述第二类加载器用于加载所述插件应用程序的类字节码文件,使得所述类字节码文件占用的内存被释放。
第二方面,一种插件应用程序的内存释放装置,包括:
确定单元,用于基于反射机制和第一类加载器,确定所述插件应用程序的加载路径,所述第一类加载器用于加载所述插件应用程序的源文件;
第一释放单元,用于基于所述插件应用程序的加载路径,获得所述插件应用程序包含的各个源文件,按照各个源文件中记录的内存释放方式,分别释放对应的源文件占用的内存;
第二释放单元,用于在虚拟机中释放第二类加载器加载的各个关联方的引用关系,所述第二类加载器用于加载所述插件应用程序的类字节码文件,使得所述类字节码文件占用的内存被释放。
第三方面,一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现第一方面所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011010175.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种甘菊精油及其应用
- 下一篇:雾化芯、雾化器和电子雾化装置