一种动态缓存调整方法及系统技术方案

技术编号:21343307 阅读:25 留言:0更新日期:2019-06-13 22:23
本发明专利技术的技术方案包括一种动态缓存调整方法及系统,用于实现:对在游戏每次加载一个资源时,通过更新资源池、资源的权重,并对缓存池的资源动态排序,定期清理,保证缓存池中的资源都是最新最必须的,以此达到完美兼顾加载速度和系统资源使用的目的。本发明专利技术的有益效果为:可动态调整缓存池的内存占用,最大效率的缓存游戏当前最需要的资源,大幅提高缓存池的资源命中率,完全满足激烈战斗场景的加载需求以及避免频繁的加载卸载导致游戏卡顿。

A Dynamic Cache Adjustment Method and System

The technical scheme of the present invention includes a dynamic cache adjustment method and system for realizing that when a resource is loaded in a game, the resource pool and the weight of the resource are updated, and the resource of the buffer pool is sorted dynamically and cleaned up periodically to ensure that the resource in the buffer pool is up-to-date and most necessary, so as to achieve the goal of perfectly balancing the loading speed and the use of system resources. The invention has the advantages of dynamically adjusting the memory occupancy of the buffer pool, maximizing the most efficient cache game resources currently needed, greatly improving the resource hit rate of the buffer pool, fully meeting the loading requirements of the fierce battle scenarios, and avoiding frequent loading and unloading leading to game carton.

【技术实现步骤摘要】
一种动态缓存调整方法及系统
本专利技术涉及一种动态缓存调整方法及系统,属于计算机

技术介绍
目前市场上一般手游为了加载速度,都会在内存中设置各种缓存池,用以将各种资源预先加载到缓存池,当需要调用时直接从缓存池载入,大大的提高加载速度减少游戏卡顿。缓存池的种类有角色的缓存池,动作的缓存池,Gameobject的缓存池等等。通过设置缓存池的上限可以保证缓存池的容量不会持续增大,进而被系统停止进程。但静态的缓存池在缓存池满了之后可能会存在真正最需要的资源没有进池,无用的资源却持续被清除的问题。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种动态缓存调整方法及系统,在游戏每次加载一个资源时,通过更新资源池、资源的权重,并对缓存池的资源动态排序,定期清理,保证缓存池中的资源都是最新最必须的,以此达到完美兼顾加载速度和系统资源使用的目的。本专利技术解决其问题所采用的技术方案一方面是:一种动态缓存调整方法,其特征在于,该方法包括:S100、创建缓存池,并设置缓存池内存上限值、清理周期以及总清理时长;S200、运行游戏程序,对游戏的资源的进行加载;S300、缓存池对资源进行缓存以及按照清理周期和清理时长对资源进行循环清理;S400、缓存池根据游戏发送的资源缓存请求执行资源的加载和/或卸载,统计各个资源的资源信息,其中资源信息包括资源的加载时间以及资源的冷却时间,并根据资源信息计算资源在缓存池中的权重值;S500、根据缓存池中缓存的资源信息设置最小缓存权重值,并在资源池满载的情况下判断入池的资源的权重值是否大于最小缓存权重值,若是将最小缓存权重值对应的资源移出缓存池并将入池的资源按照权重入池,否则将入池的资源移出资源池,并结束资源使用。进一步的,所述S300包括:S301、读取上次缓存池对缓存资源执行清理的时刻,并根据当前时刻与缓存池对缓存资源执行清理的时刻的差,得到清理冷却时间;S302、判断清理冷却时间是否大于清理周期,若是则执行步骤S304,否则执行步骤S303;S303、休眠一定时间后,更新清理冷却时间并返回执行S302,其中一定时间可自定义;S304、按照资源权重值的大小排列倒序清理缓存池的资源;S305、记录清理缓存池资源所耗费的时间,记为清理时长,判断清理时长是否大于总清理时长,若是则结束清理操作,否则返回执行步骤S304。进一步的,所述S301还包括:若未读取到上次缓存池对缓存资源执行清理的时刻,则直接设置清理冷却时间为0。进一步的,所述S400包括:S410、根据游戏请求内容加载对应的资源;S420、判断该资源是否在缓存池中,若是则执行步骤S430,否则执行步骤S440;S430、从缓存池加载该资源并记录该资源的使用时刻;S440、从磁盘加载该资源并记录该资源的使用时刻和加载时间;S450、资源加载完毕,根据资源的使用时刻和加载时间计算各个资源的权重值。进一步的,所述S450包括:S451、记录当前时刻,与资源的使用时间做差的绝对值得到冷却时间;S452、根据资源的冷却时间和加载时间计算各个资源的权重值,计算式为W=T×A+L×B其中W为权重值,其中T为冷却时间,其中L为加载时间,其中A、B为权重系数,可自定义;S453、按照步骤S452的方法计算各个资源的权重值,并在每次缓存池加载资源时更新资源的权重值。进一步的,所述S500包括:S501、检查资源池中各个资源的权重值,将权重值最小的资源的权重值设为最小缓存权重值;S502、资源加载完毕,用于游戏调用同时检查资源池是否已满,若是则执行步骤S503,否则执行步骤S504;S503、判断入池的资源的权重值是否大于最小缓存权重值,若是则将最小缓存权重值对应的资源移出资源池,并将入池的资源按照权重入池,否则将入池的资源移出资源池;S504、将入池的资源按照权重入池;S505、结束资源使用。本专利技术解决其问题所采用的技术方案另一方面是:一种动态缓存调整系统,其特征在于,包括:缓存模块,用于创建缓存池并缓存资源,并设置缓存池内存上限值、清理周期以及总清理时长;加载模块,用于运行游戏程序,对游戏的资源的进行加载;清理模块,用于对缓存池中缓存的资源进按照清理周期和清理时长对资源进行循环清理;记录模块,用于统计缓存池中各个资源的资源信息;判断模块,用于据缓存池中缓存的资源信息设置最小缓存权重值并判断资源权重值与最小缓存权重值的大小;缓存管理模块,用于将资源从缓存池中移出或将资源移入缓存池。进一步的,所述清理模块还包括:读取计算模块,用于读取上次缓存池对缓存资源执行清理的时刻,并根据当前时刻与缓存池对缓存资源执行清理的时刻的差,得到清理冷却时间;第一判断模块,用于判断清理冷却时间是否大于清理周期;休眠模块,用于根据设置的休眠时间执行休眠;清除模块,用于按照资源权重值的大小排列倒序清理缓存池的资源,将符合条件的资源移出缓存池;记时模块,用于记录清理缓存池资源所耗费的时间,记为清理时长;第二判断模块,用于判断清理时长是否大于总清理时长,并根据判断结果执行继续清理或结束清理操作。进一步的,所述记录模块还包括:内容读取模块,用于根据游戏请求内容加载对应的资源;检查模块,用于获取资源池中缓存的资源信息;判断模块,用于判断请求入池的资源是否在缓存池中;日志模块,用于记录加载资源的使用时刻和加载时间;计算模块,用于根据资源的使用时刻和加载时间计算各个资源的权重值。进一步的,所述判断模块还包括:统计模块,用于检查资源池中各个资源的权重值,并按照资源权重大小排列;设置模块,用于将权重值最小的资源的权重值设为最小缓存权重值;检查模块,用于资源加载完毕后检查资源池是否已满;第一判断模块,用于判断入池的资源的权重值是否大于最小缓存权重值;结束模块,用于结束资源使用。本专利技术的有益效果是:可动态调整缓存池的内存占用、可最大效率的缓存游戏当前最需要的资源、大幅提高缓存池的资源命中率、完全满足激烈战斗场景的加载需求以及避免频繁的加载卸载导致游戏卡顿。附图说明图1是本专利技术的方法流程示意图;图2是本专利技术的系统结构示意图;图3是本专利技术的清理流程示意图;图4是本专利技术的资源加载及权重计算流程示意图;图5是本专利技术的权重判断流程示意图;图6是本专利技术的优选实施例。具体实施方式以下将结合实施例和附图对本专利技术的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本专利技术的目的、方案和效果。需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本
的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本专利技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此本文档来自技高网
...

【技术保护点】
1.一种动态缓存调整方法,其特征在于,该方法包括:S100、创建缓存池,并设置缓存池内存上限值、清理周期以及总清理时长;S200、运行游戏程序,对游戏的资源的进行加载;S300、缓存池对资源进行缓存以及按照清理周期和清理时长对资源进行循环清理;S400、缓存池根据游戏发送的资源缓存请求执行资源的加载和/或卸载,统计各个资源的资源信息,其中资源信息包括资源的加载时间以及资源的冷却时间,并根据资源信息计算资源在缓存池中的权重值;S500、根据缓存池中缓存的资源信息设置最小缓存权重值,并在资源池满载的情况下判断入池的资源的权重值是否大于最小缓存权重值,若是将最小缓存权重值对应的资源移出缓存池并将入池的资源按照权重入池,否则将入池的资源移出资源池,并结束资源使用。

【技术特征摘要】
1.一种动态缓存调整方法,其特征在于,该方法包括:S100、创建缓存池,并设置缓存池内存上限值、清理周期以及总清理时长;S200、运行游戏程序,对游戏的资源的进行加载;S300、缓存池对资源进行缓存以及按照清理周期和清理时长对资源进行循环清理;S400、缓存池根据游戏发送的资源缓存请求执行资源的加载和/或卸载,统计各个资源的资源信息,其中资源信息包括资源的加载时间以及资源的冷却时间,并根据资源信息计算资源在缓存池中的权重值;S500、根据缓存池中缓存的资源信息设置最小缓存权重值,并在资源池满载的情况下判断入池的资源的权重值是否大于最小缓存权重值,若是将最小缓存权重值对应的资源移出缓存池并将入池的资源按照权重入池,否则将入池的资源移出资源池,并结束资源使用。2.根据权利要求1所述的动态缓存调整方法,其特征在于,所述S300包括:S301、读取上次缓存池对缓存资源执行清理的时刻,并根据当前时刻与缓存池对缓存资源执行清理的时刻的差,得到清理冷却时间;S302、判断清理冷却时间是否大于清理周期,若是则执行步骤S304,否则执行步骤S303;S303、休眠一定时间后,更新清理冷却时间并返回执行S302,其中一定时间可自定义;S304、按照资源权重值的大小排列倒序清理缓存池的资源;S305、记录清理缓存池资源所耗费的时间,记为清理时长,判断清理时长是否大于总清理时长,若是则结束清理操作,否则返回执行步骤S304。3.根据权利要求2所述的动态缓存调整方法,其特征在于,所述S301还包括:若未读取到上次缓存池对缓存资源执行清理的时刻,则直接设置清理冷却时间为0。4.根据权利要求1所述的动态缓存调整方法,其特征在于,所述S400包括:S410、根据游戏请求内容加载对应的资源;S420、判断该资源是否在缓存池中,若是则执行步骤S430,否则执行步骤S440;S430、从缓存池加载该资源并记录该资源的使用时刻;S440、从磁盘加载该资源并记录该资源的使用时刻和加载时间;S450、资源加载完毕,根据资源的使用时刻和加载时间计算各个资源的权重值。5.根据权利要求4所述的动态缓存调整方法,其特征在于,所述S450包括:S451、记录当前时刻,与资源的使用时间做差的绝对值得到冷却时间;S452、根据资源的冷却时间和加载时间计算各个资源的权重值,计算式为W=T×A+L×B其中W为权重值,其中T为冷却时间,其中L为加载时间,其中A、B为权重系数,可自定义;S453、按照步骤S452的方法计算各个资源的权重值,并在每次缓存池加载资源时更新资源的权...

【专利技术属性】
技术研发人员:潘亚楠胡逸飞赖炳新
申请(专利权)人:珠海金山网络游戏科技有限公司珠海西山居移动游戏科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1