[发明专利]内存泄露的处理方法、装置及存储介质有效
申请号: | 202010500067.7 | 申请日: | 2020-06-04 |
公开(公告)号: | CN111638990B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 刘明栓 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京超成律师事务所 11646 | 代理人: | 刘静 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 泄露 处理 方法 装置 存储 介质 | ||
1.一种内存泄露的处理方法,其特征在于,应用于服务器,包括:
获取目标游戏的检测脚本,所述检测脚本是根据内存泄露的影响因素确定的;
根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,所述检测结果用于表示存在内存泄露的第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系;
将所述检测结果发送给终端设备,所述终端设备用于根据所述检测结果,解除所述程序文件中一组对象之间的引用关系;
所述内存泄露的影响因素包括以下中的至少一个:
生命周期小于预设值的对象被生命周期大于所述预设值的对象引用;
循环引用中的任一对象定义了销毁操作;
存在循环引用且垃圾回收功能关闭;
所述根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,包括:
获取所述程序文件对应的至少一个未释放对象,并从所述至少一个未释放对象中确定所述第一对象;
通过运行所述检测脚本,对所述程序文件进行内存泄露检测,确定所述至少一个第二对象,以及所述第一对象与所述至少一个第二对象之间的引用关系;
根据所述引用关系,绘制得到所述第一对象和所述至少一个第二对象的引用关系图,所述检测结果为所述引用关系图。
2.根据权利要求1所述的方法,其特征在于,所述根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果之前,还包括:
向与所述服务器连接的测试终端发送第一请求,所述第一请求用于请求断开与所述服务器之间的网络连接。
3.根据权利要求2所述的方法,其特征在于,所述向与所述服务器连接的测试终端发送第一请求,包括:
根据接收到的第二请求,向与所述服务器连接的测试终端发送第一请求,所述第二请求用于请求所述服务器对所述程序文件进行内存泄露检测。
4.根据权利要求1所述的方法,其特征在于,所述第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系包括以下中的至少一种:
直接引用、间接引用、循环引用。
5.一种内存泄露的处理方法,其特征在于,应用于终端设备,所述方法包括:
接收服务器发送的检测结果,所述检测结果是所述服务器根据检测脚本对目标游戏的程序文件进行内存泄露检测得到的,所述检测脚本是根据内存泄露的影响因素确定的,所述检测结果用于表示存在内存泄露的第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系,所述服务器通过如下方式对所述程序文件进行内存泄漏检测:获取所述程序文件对应的至少一个未释放对象,并从所述至少一个未释放对象中确定所述第一对象,通过运行所述检测脚本,对所述程序文件进行内存泄露检测,确定所述至少一个第二对象,以及所述第一对象与所述至少一个第二对象之间的引用关系,根据所述引用关系,绘制得到所述第一对象和所述至少一个第二对象的引用关系图,所述检测结果为所述引用关系图;所述内存泄露的影响因素包括以下中的至少一个:生命周期小于预设值的对象被生命周期大于所述预设值的对象引用;循环引用中的任一对象定义了销毁操作;存在循环引用且垃圾回收功能关闭;
根据所述检测结果,从第一对象和至少一个第二对象中,确定待解除引用关系的一组对象,每组对象中包括两个对象;
解除目标游戏的程序文件中所述两个对象之间的引用关系。
6.根据权利要求5所述的方法,其特征在于,所述确定待解除引用关系的一组对象,每组对象中包括两个对象,包括:
根据预先定义的所述两个对象的标识,确定待解除引用关系的一组对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010500067.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:自力式液位调节装置
- 下一篇:一种污泥制砖生产用烘干窑坯料输出装置