[发明专利]一种多Lua虚拟机内存优化方法及其系统在审
| 申请号: | 201911111787.8 | 申请日: | 2019-11-14 |
| 公开(公告)号: | CN111061538A | 公开(公告)日: | 2020-04-24 |
| 发明(设计)人: | 钟朝龙 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
| 代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 郑晨鸣 |
| 地址: | 519000 广东省珠海市高新区唐家湾镇前岛环路325号102室*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 lua 虚拟机 内存 优化 方法 及其 系统 | ||
本发明涉及一种多Lua虚拟机内存优化方法,包括S1、标记Dofile函数执行过程中已访问Lua虚拟机及虚拟机中的资源;S2、采集被标记资源的存储路径数据,根据已采集的所述存储路径数据生成地址列表;S3、在目标Lua虚拟机内检测目标全局数据;S4、调用并遍历所述地址列表,在所述已访问Lua虚拟机中检索所述目标全局数据;S5、复制所述目标全局数据并将其发送至所述目标Lua虚拟机。一种多Lua虚拟机内存优化系统,包括信息标记模块、地址列表生成模块、全局数据检测模块、全局数据检索模块以及全局数据调用模块。本发明能够在不改变多虚拟机结构的前提下,实现对内存资源的有效利用,进而提升工作效率。
技术领域
本发明涉及计算机技术领域,特别涉及一种多Lua虚拟机内存优化方法及其系统。
背景技术
现如今,很多网络游戏的服务器中均使用了Lua技术;在其中每个Lua一般会分配一个对应的Lua虚拟机,以此保证每个Lua完全隔离,达到互不干扰的效果;基于多虚拟机结构的应用,Lua文件数量会增加,同时公共库等Lua文件的Dofile行为也会相应地增加;每当执行一次Dofile函数时,需要将某个Lua文件完全复制到新的虚拟机再解释运行,此时就会占用大量的内存资源,影响了工作效率。
为应对这种弊端,现有解决方案是将多虚拟机重构为单虚拟机形式;在单虚拟机结构下,所有存储在虚拟机内的文件可以相互访问,从而省略了先复制文件再解释运行的步骤;如此虽然可以节省内存资源,但也存在其他弊端,即同一项目周期内的脚本之间一般有所区别,在原有的隔离环境下它们的运行互不干扰,若重构为单虚拟机结构,则会导致不同脚本间的全局变量以及全局函数产生冲突,进而衍生出很多Bug,为解决这些Bug,又需要投入额外的人力成本,此举同样会影响工作效率。
因此,在不改变多虚拟机结构的前提下,如何实现内存资源的有效利用,提供工作效率是当前急需解决的技术问题。
发明内容
为解决上述现有技术中存在的技术问题,本发明提供了一种多Lua虚拟机内存优化方法及其系统,能够在不改变多虚拟机结构的前提下,实现对内存资源的有效利用,进而提升工作效率。
本发明为解决技术问题所采用的技术方案为:
一种多Lua虚拟机内存优化方法,包括以下步骤:
S1、标记Dofile函数执行过程中已访问Lua虚拟机及虚拟机中的资源;
S2、采集被标记资源的存储路径数据,根据已采集的所述存储路径数据生成地址列表;
S3、在目标Lua虚拟机内检测目标全局数据;
S4、调用并遍历所述地址列表,在所述已访问Lua虚拟机中检索所述目标全局数据;
S5、复制所述目标全局数据并将其发送至所述目标Lua虚拟机。
进一步,所述目标全局数据包括下面至少一项:全局变量、全局函数。
进一步,步骤S3还包括:若检测结果显示所述目标Lua虚拟机内已存在所述目标全局数据,则所述目标Lua虚拟机直接调用所述目标全局数据执行任务;若检测结果显示所述目标Lua虚拟机内不存在所述目标全局数据,则执行步骤S4。
进一步,对所述地址列表的遍历逆序进行。
一种多Lua虚拟机内存优化系统,包括以下模块:
信息标记模块,用于标记Dofile函数执行过程中已访问Lua虚拟机及虚拟机中的资源;
地址列表生成模块,用于采集被标记资源的存储路径数据,根据已采集的所述存储路径数据生成地址列表;
全局数据检测模块,用于在目标Lua虚拟机内检测目标全局数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司,未经珠海金山网络游戏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911111787.8/2.html,转载请声明来源钻瓜专利网。





