【技术实现步骤摘要】
内存泄露的处理方法、装置及存储介质
本申请涉及计算机
,具体而言,涉及一种内存泄露的处理方法、装置及存储介质。
技术介绍
在游戏开发过程中,开发人员编写的程序文件常常会存在内存泄露的问题,当游戏上线后,会出现由于内存泄露而导致游戏进程停止运行的现象。其中,内存泄漏(MemoryLeak)指的是程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。现有技术中,通常通过压力测试来检测是否存在内存泄露,具体地,采用大量的模拟客户端来登录游戏、玩游戏以及退出登录游戏,来观测系统内存的增长情况,若系统内存持续增长,则确定该游戏的程序文件存在内存泄露的问题,然后需要人工排查该程序文件存在内存泄露的原因,从而开发人员可以对该程序文件进行修改,以解决内存泄露的问题。然而,采用压力测试的方式实施起来比较繁琐、实施流程较长,并且人工排查内存泄露的效率较低。
技术实现思路
有鉴于此,本申请的目的在于提供一种内存泄露的处理方法、装置 ...
【技术保护点】
1.一种内存泄露的处理方法,其特征在于,应用于服务器,包括:/n获取目标游戏的检测脚本,所述检测脚本是根据内存泄露的影响因素确定的;/n根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,所述检测结果用于表示存在内存泄露的第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系;/n将所述检测结果发送给终端设备,所述终端设备用于根据所述检测结果,解除所述程序文件中一组对象之间的引用关系。/n
【技术特征摘要】
1.一种内存泄露的处理方法,其特征在于,应用于服务器,包括:
获取目标游戏的检测脚本,所述检测脚本是根据内存泄露的影响因素确定的;
根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,所述检测结果用于表示存在内存泄露的第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系;
将所述检测结果发送给终端设备,所述终端设备用于根据所述检测结果,解除所述程序文件中一组对象之间的引用关系。
2.根据权利要求1所述的方法,其特征在于,所述内存泄露的影响因素包括以下中的至少一个:
生命周期小于预设值的对象被生命周期大于所述预设值的对象引用;
循环引用中的任一对象定义了销毁操作;
存在循环引用且垃圾回收功能关闭。
3.根据权利要求1所述的方法,其特征在于,所述根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果之前,还包括:
向与所述服务器连接的测试终端发送第一请求,所述第一请求用于请求断开与所述服务器之间的网络连接。
4.根据权利要求1或3所述的方法,其特征在于,所述根据所述检测脚本,对所述目标游戏的程序文件进行内存泄露检测,得到检测结果,包括:
获取所述程序文件对应的至少一个未释放对象,并从所述至少一个未释放对象中确定所述第一对象;
通过运行所述检测脚本,对所述程序文件进行内存泄露检测,确定所述至少一个第二对象,以及所述第一对象与所述至少一个第二对象之间的引用关系;
根据所述引用关系,绘制得到所述第一对象和所述至少一个第二对象的引用关系图,所述检测结果为所述引用关系图。
5.根据权利要求3所述的方法,其特征在于,所述向与所述服务器连接的测试终端发送第一请求,包括:
根据接收到的第二请求,向与所述服务器连接的测试终端发送第一请求,所述第二请求用于请求所述服务器对所述程序文件进行内存泄露检测。
6.根据权利要求1所述的方法,其特征在于,所述第一对象以及引用所述第一对象的至少一个第二对象之间的引用关系包括以下中的至少一种:
直接引用、间接引用、循环引用。
7.一种内存泄露的处理方法,其特征在于,应用于终端设备,所述方法包括:
接收服务器发送的检测结果,所述检测结果是所述服务器根据检测脚本对目标游戏的程序文件进行内存泄露检测得到的,所述检测脚本是根据内存泄露...
【专利技术属性】
技术研发人员:刘明栓,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。