[发明专利]内存泄露的处理方法、装置及存储介质有效
申请号: | 202010500067.7 | 申请日: | 2020-06-04 |
公开(公告)号: | CN111638990B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 刘明栓 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京超成律师事务所 11646 | 代理人: | 刘静 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 泄露 处理 方法 装置 存储 介质 | ||
本申请提供了一种内存泄露的处理方法、装置及存储介质,该方法包括:服务器获取目标游戏的检测脚本,根据检测脚本,对目标游戏的程序文件进行内存泄露检测,得到检测结果,将检测结果发送给终端设备,终端设备根据检测结果,从第一对象和至少一个第二对象中,确定待解除引用关系的一组对象,并解除目标游戏程序文件中该两个对象之间的引用关系。本方案采用检测脚本对程序文件进行内存泄露检测,得到检测结果,根据检测结果解除程序文件中至少一组对象之间的引用关系,实现了对程序文件的修改,提高了内存泄露的处理效率和准确度,同时节省了人力成本。
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种内存泄露的处理方法、装置及存储介质。
背景技术
在游戏开发过程中,开发人员编写的程序文件常常会存在内存泄露的问题,当游戏上线后,会出现由于内存泄露而导致游戏进程停止运行的现象。其中,内存泄漏(MemoryLeak)指的是程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
现有技术中,通常通过压力测试来检测是否存在内存泄露,具体地,采用大量的模拟客户端来登录游戏、玩游戏以及退出登录游戏,来观测系统内存的增长情况,若系统内存持续增长,则确定该游戏的程序文件存在内存泄露的问题,然后需要人工排查该程序文件存在内存泄露的原因,从而开发人员可以对该程序文件进行修改,以解决内存泄露的问题。
然而,采用压力测试的方式实施起来比较繁琐、实施流程较长,并且人工排查内存泄露的效率较低。
发明内容
有鉴于此,本申请的目的在于提供一种内存泄露的处理方法、装置及存储介质,以解决现有技术中处理内存泄露时效率较低、准确度不高的问题。
第一方面,本申请提供一种内存泄露的处理方法,应用于服务器,包括:
获取目标游戏的检测脚本,所述检测脚本是根据内存泄露的影响因素确定的;
根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,所述检测结果用于表示存在内存泄露的第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系;
将所述检测结果发送给终端设备,所述终端设备用于根据所述检测结果,解除所述程序文件中一组对象之间的引用关系。
在一些实施例中,所述内存泄露的影响因素包括以下中的至少一个:
生命周期小于预设值的对象被生命周期大于所述预设值的对象引用;
循环引用中的任一对象定义了销毁操作;
存在循环引用且垃圾回收功能关闭。
在一些实施例中,所述根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果之前,还包括:
向与所述服务器连接的测试终端发送第一请求,所述第一请求用于请求断开与所述服务器之间的网络连接。
在一些实施例中,所述根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,包括:
获取所述程序文件对应的至少一个未释放对象,并从所述至少一个未释放对象中确定所述第一对象;
通过运行所述检测脚本,对所述程序文件进行内存泄露检测,确定所述至少一个第二对象,以及所述第一对象与所述至少一个第二对象之间的引用关系;
根据所述引用关系,绘制得到所述第一对象和所述至少一个第二对象的引用关系图,所述检测结果为所述引用关系图。
在一些实施例中,所述向与所述服务器连接的测试终端发送第一请求,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010500067.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自力式液位调节装置
- 下一篇:一种污泥制砖生产用烘干窑坯料输出装置