[发明专利]一种统计帧同步服务器的脚本运行性能的方法和系统在审
申请号: | 201810004582.9 | 申请日: | 2018-01-03 |
公开(公告)号: | CN108304303A | 公开(公告)日: | 2018-07-20 |
发明(设计)人: | 刘马良;黎健钧;潘亚楠;孙亚文;熊文娟;周诚 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司;珠海西山居移动游戏科技有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 樊思远 |
地址: | 519000 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本运行 帧同步 服务器 返回 耗时 游戏服务器 函数调用 回调函数 帧期间 统计 性能数据 用户提供 游戏体验 监听帧 帧开始 监听 单帧 优化 分析 | ||
一种统计帧同步服务器的脚本运行性能的方法,包括以下步骤:注册Lua函数进入与返回的回调函数,以监听Lua函数的进入和返回;注册帧的开始与结束的回调函数,以监听帧的开始与结束;当一帧开始时,获取该帧期间Lua函数的进入时刻和返回时刻;当该帧结束时,根据Lua函数的进入时刻和返回时刻,统计该帧期间的Lua函数的耗时。一种统计帧同步服务器的脚本运行性能的系统,该方法和系统通过获取游戏服务器单帧内的Lua函数性能数据,可以分析帧耗时时间较长的帧LUA函数调用细节,找出耗时较大的Lua函数调用,优化游戏服务器卡顿帧,为用户提供更好的游戏体验。
技术领域
本发明涉及软件技术领域,尤其涉及一种统计帧同步服务器的脚本运行性能的方法和系统。
背景技术
脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,它不同于c\c++等需要编译成二进制代码,以可执行文件的形式存在的常规编程语言,脚本语言不需要编译,可以直接用,由解释器来负责解释。脚本语言的代码能够被实时生成和执行,使应用程序更加灵活,深受网络应用开发者的欢迎。目前以Lua为首的脚本语言被广泛应用于游戏服务器开发中。由于Lua较容易上手、开发迭代速度快、可热更新、性能快速等优点,已经广泛应用于游戏开发领域,在游戏服务器、unity游戏引擎中均有较多应用。帧同步游戏服务器实时性要求较高,如果某帧出现卡顿,将严重影响游戏服务体验,因此,在使用C++和LUA开发的游戏服务器中,对性能要求非常高,统计Lua运行时性能并对其进行优化,显得尤为重要。
发明人认识到,目前现存的一些Lua代码检查工具以及Lua代码运行时性能统计工具,都存在如下缺陷:
·一些常见的代码检查工具(例如google的Luachecker)能够静态扫描Lua代码,发现其中一些语法、语义上的问题,但无法动态统计运行时性能;
·基于Lua hook机制实现的工具如ProFi.Lua以及lulip.Lua只能统计Lua运行过程中各个Lua函数的开销,不能满足复杂游戏服务器C++与Lua交互复杂环境的性能统计,同时其也不能统计每一帧的Lua性能开销。
发明内容
为了解决上述的一个或多个技术问题,根据本公开的第一个方面,提供了一种统计帧同步服务器的脚本运行性能的方法,包括以下步骤:A、注册Lua函数进入与返回的回调函数,以监听Lua函数的进入和返回;B、注册帧的开始与结束的回调函数,以监听帧的开始与结束;C、当一帧开始时,获取该帧期间Lua函数的进入时刻和返回时刻;D、当该帧结束时,根据Lua函数的进入时刻和返回时刻,统计该帧期间的Lua函数的耗时。
进一步地,如果在进入一Lua函数期间调用了其他Lua函数,则建立包含多个节点的统计树,其中,每调用一个Lua函数生成一个节点,每个节点保存有对应Lua函数的函数名、进入时刻和返回时刻的信息,统计树的结构对应Lua函数的调用关系。
进一步地,当获取一Lua函数的进入时刻后在预置时间内该Lua函数没有返回,则停止监听该Lua函数的返回。
根据本公开的第二个方面,提供了一种统计帧同步服务器的脚本运行性能的系统,该系统包括第一单元,注册Lua函数进入与返回的回调函数,以监听Lua函数的进入和返回;第二单元,注册帧的开始与结束的回调函数,以监听帧的开始与结束;第三单元,当一帧开始时,获取该帧期间Lua函数的进入时刻和返回时刻;第四单元,当该帧结束时,根据Lua函数的进入时刻和返回时刻,统计该帧期间的Lua函数的耗时。
进一步地,如果在进入一Lua函数期间调用了其他Lua函数,则建立包含多个节点的统计树,其中,每调用一个Lua函数生成一个节点,每个节点保存有对应Lua函数的函数名、进入时刻和返回时刻的信息,统计树的结构对应Lua函数的调用关系。
进一步地,当获取一Lua函数的进入时刻后在预置时间内该Lua函数没有返回,则停止监听该Lua函数的返回。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司;珠海西山居移动游戏科技有限公司,未经珠海金山网络游戏科技有限公司;珠海西山居移动游戏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810004582.9/2.html,转载请声明来源钻瓜专利网。