
SERVICE PHONE
363050.com发布时间:2025-09-25 19:32:56 点击量:
IM电竞,IM电竞官网,IM电竞注册,IM电竞APP下载,IM电竞投注,电竞比分直播/IM电竞作为全球领先的电竞投注平台,提供英雄联盟、CSGO、DOTA2等顶级赛事投注,注册即送高额体验金,APP下载畅玩不停,实时比分直播,体验极致电竞乐趣。
根据预设规则,将负载值设置为最大负载值,并将所述最大负载值发送至所述负载均
衡器,以使所述负载均衡器不向发送所述最大负载值的任务进程分配所述游戏任务;
2.根据权利要求1所述的垃圾回收方法,其特征在于,在接收负载均衡器分配的游戏任
获取实时负载值,将所述实时负载值发送至所述负载均衡器,以使所述负载均衡器根
3.根据权利要求1所述的垃圾回收方法,其特征在于,根据预设规则,将负载值设置为
获取相对于当前执行游戏任务的上一次执行垃圾回收的时间,基于所述当前执行游戏
在确定所述执行时间差大于所述预设间隔时间阈值时,将所述负载值设置为最大负载
4.根据权利要求1所述的垃圾回收方法,其特征在于,根据预设规则,将负载值设置为
当所述任务进程只能承载一个游戏任务,且所述任务进程分配到一个游戏任务时,将
5.根据权利要求1所述的垃圾回收方法,其特征在于,根据预设规则,将负载值设置为
获取预设第一时间间隔,基于所述预设第一时间间隔,将所述第一任务进程的负载值
设置为最大负载值,并将所述第一任务进程的最大负载值发送至所述负载均衡器。
6.根据权利要求5所述的垃圾回收方法,其特征在于,在执行垃圾回收之后,所述垃圾
当所述第一任务进程执行垃圾回收之后,基于所述预设第一时间间隔,将所述第二任
务进程的负载值设置为最大负载值,并将所述最大负载值发送至所述负载均衡器。
7.根据权利要求1所述的垃圾回收方法,其特征在于,当执行完所述负载均衡器分配的
当游戏任务的数量为零时,确定并通过与目标游戏的脚本语言对应的垃圾回收实现方
8.根据权利要求1所述的垃圾回收方法,其特征在于,当执行完所述负载均衡器分配的
获取预设执行时间阈值,当执行所述游戏任务的时间大于所述预设执行时间阈值时,
进程负载调节模块,用于根据预设规则,将负载值设置为最大负载值,并将所述最大负
载值发送至所述负载均衡器,以使所述负载均衡器不向发送所述最大负载值的任务进程分
垃圾回收模块,用于当执行完所述负载均衡器分配的所述游戏任务后,执行垃圾回收。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1‑8任一项所述的
本公开实施例涉及计算机技术领域,具体而言,涉及一种游戏中的垃圾回收方法、
性能,但是在对实时性要求较高的游戏中,当在游戏运行时,由于执行垃圾回收,造成游戏
执行垃圾回收来避免游戏中因垃圾回收而导致的卡顿,但是,采用关闭游戏脚本语言的垃
圾回收时,游戏程序中不能出现循环引用,当存在循环应用时不但会造成内存溢出,还增加
了维护难度;当采用由游戏的子进程执行垃圾回收时,需要修改大量的脚本源码,增加了实
算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷
载均衡器,以使所述负载均衡器不向发送所述最大负载值的任务进程分配所述游戏任务;
在本公开的一种示例性实施例中,根据预设规则,将负载值设置为最大负载值,并
在本公开的一种示例性实施例中,根据预设规则,将负载值设置为最大负载值,并
时,将所述负载值设置为最大负载值,并将所述最大负载值发送至所述负载均衡器。
在本公开的一种示例性实施例中,根据预设规则,将负载值设置为最大负载值,并
载值设置为最大负载值,并将所述第一任务进程的最大负载值发送至所述负载均衡器。
二任务进程的负载值设置为最大负载值,并将所述最大负载值发送至所述负载均衡器。
时,确定并通过与目标游戏的脚本语言对应的垃圾回收实现方式,执行垃圾回收。
进程负载调节模块,用于根据预设规则,将负载值设置为最大负载值,并将所述最
大负载值发送至所述负载均衡器,以使所述负载均衡器不向发送所述最大负载值的任务进
根据本公开的一个方面,提供一种计算机存储介质,其上存储有计算机程序,所述
计算机程序被处理器执行时实现上述任一示例性实施例所述的游戏中的垃圾回收方法。
务;根据预设规则,将负载值设置为最大负载值,并将所述最大负载值发送至所述负载均衡
器,以使所述负载均衡器不向发送所述最大负载值的任务进程分配所述游戏任务;当执行
完所述负载均衡器分配的所述游戏任务后,执行垃圾回收。一方面,当负载均衡器将游戏任
务分配至目标游戏的任务进程之后,根据预设规则,任务进程将其负载值设置为最大负载
值,并将该最大负载值上报给负载均衡器,当任务进程执行完游戏任务之后,执行垃圾回
收,将任务进程执行游戏任务与执行垃圾回收的时机错开,与相关技术中采用关闭游戏脚
本的垃圾回收方法或者有游戏子进程执行垃圾回收的方法相比,实现简单,在开发过程中
既不需要避免循环引用,也不需要对脚本源码进行修改;另一方面,当任务进程执行完游戏
任务之后,才进行垃圾回收,既成功回收了具备循环引用的垃圾对象,又避免了因自动垃圾
例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加
全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结
构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许
多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可
以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方
法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标
记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功
能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功
能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处
在相关技术的一游戏项目中,该游戏项目采用的脚本语言为Python,Python采用
的垃圾回收机制为引用计数,针对程序中的循环引用问题,使用标记清除和分代回收来解
决,但是,分代回收当第二代收集次数达到阈值时,将会触发第三代垃圾回收,即进行全量
垃圾回收,在进行全量垃圾回收时,会对全部对象进行遍历,进而导致游戏卡顿,因此,当采
用关闭脚本的垃圾回收时,在代码中要避免循环引用。当在生产环境中时,首先检查循环引
用的数量,然后定位消除,对程序员的要求较高。当采用子进程执行脚本的垃圾回收时,关
闭主进程中的垃圾回收扫描,将垃圾回收过程中比较耗时的操作放到子进程中,该方案可
以解决垃圾回收造成主线程卡顿的问题,但是,需要对脚本源码进行大量修改,实现复杂度
收方法,该方法可以运行于服务器、服务器集群或者云服务器等等;当然,本领域技术人员
也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。
参考图1所示,该游戏中的垃圾回收方法可以包括步骤S110‑步骤S130:
步骤S120.根据预设规则,将负载值设置为最大负载值,并将所述最大负载值发送
至所述负载均衡器,以使所述负载均衡器不向发送所述最大负载值的任务进程分配所述游
步骤S130.当执行完所述负载均衡器分配的所述游戏任务后,执行垃圾回收。
上述游戏中的垃圾回收方法,接收负载均衡器分配的游戏任务;根据预设规则,将
负载值设置为最大负载值,并将所述最大负载值发送至所述负载均衡器,以使所述负载均
衡器不向发送所述最大负载值的任务进程分配所述游戏任务;当执行完所述负载均衡器分
配的所述游戏任务后,执行垃圾回收。一方面,当负载均衡器将游戏任务分配至目标游戏的
任务进程之后,根据预设规则,任务进程将其负载值设置为最大负载值,并将该最大负载值
上报给负载均衡器,当任务进程执行完游戏任务之后,执行垃圾回收,将任务进程执行游戏
任务与执行垃圾回收的时机错开,与相关技术中采用关闭游戏脚本的垃圾回收方法或者有
游戏子进程执行垃圾回收的方法相比,实现简单,在开发过程中既不需要避免循环引用,也
不需要对脚本源码进行修改;另一方面,当任务进程执行完游戏任务之后,才进行垃圾回
收,既成功回收了具备循环引用的垃圾对象,又避免了因自动垃圾回收导致的游戏卡顿的
首先,对本公开示例实施例的应用场景以及发明目的进行解释以及说明。具体的,
本公开示例实施例可以应用于较高实时性要求的对战游戏中,主要研究如何避免对战游戏
在本公开中,当游戏开始后,各任务进程接收负载均衡器分配的游戏任务,当任务
进程接收到游戏任务之后,根据预设规则,任务进程将自身的负载值设置为最大负载值,并
将该最大负载值发送至负载均衡器,当负载均衡器接收到任务进程发送的最大负载值之
后,不再向发送最大负载值的任务进程分配游戏任务,该发送最大负载值的任务进程执行
游戏任务,当该任务进程执行完负载均衡器分配的游戏任务之后,执行垃圾回收,避免了游
明。参考图2所示,该游戏中的垃圾回收系统可以包括:用户210、负载均衡器220以及任务进
程230。其中,用户210,用于发起游戏中的战斗请求,当用户210发起战斗请求之后,任务进
程230将实时负载值发送至负载均衡器220,负载均衡器220接收到任务进程230发送的负载
值之后,向任务进程230分配游戏任务,当任务进程230接收到负载均衡器220分配的游戏任
务之后,根据预设规则将其负载值设置为最大负载值,并将该最大负载值发送至负载均衡
器220,负载均衡器220不再向发送最大负载值的任务进程230分配游戏任务,当任务进程
230执行完负载均衡器220分配的游戏任务之后,执行垃圾回收,当执行完垃圾回收之后,任
在执行一个或者多个游戏任务,而目标游戏的脚本语言的自动回收垃圾机制在此时进行垃
圾回收时,会造成游戏卡顿,因此,在本示例实施例中当目标游戏开始时,获取目标游戏的
负载值,并将实时负载值发送至负载均衡器,负载均衡器根据各任务进程上报的实时负载
值,为各任务进程分配游戏任务,各任务进程接收负载均衡器分配的游戏任务并执行。
在步骤S120中,根据预设规则,将负载值设置为最大负载值,并将所述最大负载值
发送至所述负载均衡器,以使所述负载均衡器不向发送所述最大负载值的任务进程分配所
程不断执行游戏任务,会产生越来越多的垃圾对象,不对垃圾对象进行清理,就会导致内存
溢出,因此,当负载均衡器将游戏任务分配至任务进程之后,任务进程根据预设规则,将其
负载值设置为最大负载值,将该最大负载值发送至负载均衡器,并执行分配得到的游戏任
参考图3所示,根据预设规则,将负载值设置为最大负载值,并将所述最大负载值
步骤S320.获取相对于当前执行游戏任务的上一次执行垃圾回收的时间,基于所
述当前执行游戏任务的时间以及所述上一次执行垃圾回收的时间,得到执行时间差;
步骤S330.在确定所述执行时间差大于所述预设间隔时间阈值时,将所述负载值
以下,将对步骤S310‑步骤S330进行进一步的解释以及说明。具体的,首先,获取预
设间隔时间阈值;然后,将任务进程当前执行游戏任务的时间,以及相对于当前执行游戏任
务的上一次该任务进程执行垃圾回收的时间,根据该任务进程当前执行游戏的时间以及上
一次该任务进程执行垃圾回收的时间,得到执行时间差,当该执行时间差大于预设间隔时
间阈值时,该任务进程将其负载值设置为最大负载值,并将该最大负载值发送至负载均衡
器,使负载均衡器不再向该发送最大负载值的任务进程分配游戏任务。其中,预设间隔时间
阈值可以为3分钟,也可以为5分钟,在本示例实施例中对预设时间间隔不做具体限定。
数量进行衡量,也可以通过任务进程的CPU时间占比进行衡量,在本示例实施例中对此不做
具体限定。并且,目标游戏中的任务进程可以承载一个游戏任务,也可以承载多个游戏任
在本示例实施例中,根据预设规则,将负载值设置为最大负载值,并将所述最大负
时,将所述负载值设置为最大负载值,并将所述最大负载值发送至所述负载均衡器。
一个任务进程之后,该任务进程将其负载值设置为最大负载值,并将该最大负载值发送至
负载均衡器,当该任务进程执行完负载均衡器分配的游戏任务之后,执行垃圾回收,当执行
在本示例实施例中,参考图4所示,根据预设规则,将负载值设置为最大负载值,并
将所述最大负载值发送至所述负载均衡器,可以包括步骤S410以及步骤S420:
步骤S420.获取预设第一时间间隔,基于所述预设第一时间间隔,将所述第一任务
进程的负载值设置为最大负载值,并将所述第一任务进程的最大负载值发送至所述负载均
以下,将对步骤S410、步骤S420进行进一步的解释以及说明。具体的,当任务进程
可以承载多个游戏任务时,获取目标游戏的任务进程中的第一任务进程;然后,获取预设第
一时间间隔,基于获取到的预设第一时间间隔该第一任务进程将其负载值设置为最大负载
值,并将该最大负载值发送至负载均衡器。其中,可以将任务进程进行划分为多个批,即,第
一任务进程、第二任务进程等等,在本示例实施例中对划分的任务进程的批数不做具体限