[发明专利]一种插件应用程序的内存释放方法及装置在审
申请号: | 202011010175.2 | 申请日: | 2020-09-23 |
公开(公告)号: | CN112131000A | 公开(公告)日: | 2020-12-25 |
发明(设计)人: | 王立军 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 李娟 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 插件 应用程序 内存 释放 方法 装置 | ||
1.一种插件应用程序的内存释放方法,其特征在于,包括:
基于反射机制和第一类加载器,确定所述插件应用程序的加载路径,所述第一类加载器用于加载所述插件应用程序的源文件;
基于所述插件应用程序的加载路径,获得所述插件应用程序包含的各个源文件,按照各个源文件中记录的内存释放方式,分别释放对应的源文件占用的内存;
在虚拟机中释放第二类加载器加载的各个关联方的引用关系,其中,所述第二类加载器用于加载所述插件应用程序的类字节码文件,使得所述类字节码文件占用的内存被释放。
2.如权利要求1所述的方法,其特征在于,基于反射机制和第一类加载器,确定所述插件应用程序的加载路径,包括:
基于反射机制,获取所述第一类加载器的路径列表属性;
将所述路径列表属性中的私有属性设置为强制访问;
访问所述私有属性,获取所述插件应用程序的加载路径。
3.如权利要求1所述的方法,其特征在于,基于所述插件应用程序的加载路径,获得所述插件应用程序包含的各个源文件,包括:
基于所述插件应用程序的加载路径,获得所述插件应用程序对应的源文件路径集合,所述源文件路径集合中记录有所述插件应用程序包含的各个源文件的访问路径;
基于反射机制和所述源文件路径集合,获得所述插件应用程序包含的各个源文件。
4.如权利要求3所述的方法,其特征在于,基于反射机制和所述源文件路径集合,获得所述插件应用程序包含的各个源文件,包括:
基于反射机制和所述源文件路径集合记录的各个源文件的访问路径,获得所述各个源文件的源文件属性;
基于获得的各个源文件属性,获得相应的源文件信息;
在获得的各个源文件信息中,获得相应的源文件。
5.如权利要求1-4任一项所述的方法,其特征在于,在虚拟机中释放第二类加载器加载的各个关联方的引用关系,包括:
在虚拟机中取消所述第二类加载器加载的目标对象与其他方之间的引用关系;
对所述第二类加载器在虚拟机中加载的类引用和对象引用进行置空;
在所述第二类加载器加载的类字节码文件的静态代码中,取消基于反射机制设置的引用关系。
6.如权利要求5所述的方法,其特征在于,在虚拟机中取消所述第二类加载器加载的目标对象与其他方之间的引用关系,包括:
若所述第二类加载器加载的目标对象与非静态类之间存在引用关系,则直接取消所述引用关系;
若所述第二类加载器加载的目标对象与静态类之间存在引用关系,则将所述静态类设置为空。
7.一种插件应用程序的内存释放装置,其特征在于,包括:
确定单元,用于基于反射机制和第一类加载器,确定所述插件应用程序的加载路径,所述第一类加载器用于加载所述插件应用程序的源文件;
第一释放单元,用于基于所述插件应用程序的加载路径,获得所述插件应用程序包含的各个源文件,按照各个源文件中记录的内存释放方式,分别释放对应的源文件占用的内存;
第二释放单元,用于在虚拟机中释放第二类加载器加载的各个关联方的引用关系,所述第二类加载器用于加载所述插件应用程序的类字节码文件,使得所述类字节码文件占用的内存被释放。
8.如权利要求7所述的装置,其特征在于,基于反射机制和第一类加载器,确定所述插件应用程序的加载路径,所述确定单元用于:
基于反射机制,获取所述第一类加载器的路径列表属性;
将所述路径列表属性中的私有属性设置为强制访问;
访问所述私有属性,获取所述插件应用程序的加载路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011010175.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种甘菊精油及其应用
- 下一篇:雾化芯、雾化器和电子雾化装置