[发明专利]一种lua代码执行性能的静态分析方法在审
申请号: | 201811076496.5 | 申请日: | 2018-09-14 |
公开(公告)号: | CN109324949A | 公开(公告)日: | 2019-02-12 |
发明(设计)人: | 刘马良;刘美智;刘明城;沈旭军;梁琪 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司;珠海西山居移动游戏科技有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/32;G06F11/34;G06F11/36 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 俞梁清 |
地址: | 519000 广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码执行 静态分析 调用 指令 源代码编译 函数执行 静态扫描 性能分析 指令估算 绑定 权重 研发 优化 估算 维护 开发 | ||
1.一种lua代码执行性能的静态分析方法,其特征在于,包括如下步骤:
将待测lua源代码编译为指令;
计算并绑定每条指令的权重;
根据各个函数执行的指令估算函数的调用性能;
根据各个函数的调用性能分析整个lua代码的性能。
2.根据权利要求1所述的lua代码执行性能的静态分析方法,其特征在于,所述将待测lua源代码编译为指令,具体包括:
使用luac将源代码编译为字节码;
根据指令的格式从所述字节码中解析识别出其中的指令;
将指令按源代码中的函数统计归类。
3.根据权利要求1所述的lua代码执行性能的静态分析方法,其特征在于,所述计算并绑定每条指令的权重,具体包括:
使用虚拟机解释执行所述指令,获取执行各指令所消耗的时间,将各指令消耗的时间绑定为各指令对应的权重。
4.根据权利要求3所述的lua代码执行性能的静态分析方法,其特征在于,所述使用虚拟机解释执行所述指令,获取执行各指令所消耗的时间,将各指令消耗的时间绑定为各指令对应的权重,具体包括:
对每条指令执行N次,分别计算出每条指令执行N次的总耗时;
分别计算每条指令执行一次的平均耗时,并将其绑定为对应指令的权重。
5.根据权利要求1所述的lua代码执行性能的静态分析方法,其特征在于,所述根据各个函数执行的指令估算函数的调用性能,包括:
分别对每个函数创建一个原型,所述原型包括函数执行的一组指令和函数所要用到的数据表;
分别计算每个函数执行其指令的总耗时,得到各个函数的调用性能。
6.根据权利要求5所述的lua代码执行性能的静态分析方法,其特征在于,所述分别计算每个函数执行其指令的总耗时,包括:
统计各个函数下所有指令执行的次数;
将每条指令执行的次数与其对应的权重相乘,得到执行每条指令的耗时;
分别对各个函数的所有指令的耗时求和,得到各个函数的调用性能。
7.根据权利要求1所述的lua代码执行性能的静态分析方法,其特征在于,根据各个函数的调用性能分析整个lua代码的性能,包括:根据各个函数执行指令的耗时进行排序,查找耗时较多的函数并对其进行优化。
8.根据权利要求1-7任一项所述的lua代码执行性能的静态分析方法,其特征在于:函数的性能开销包括函数内部的性能开销和调用的子函数的性能开销,所述性能开销即为执行指令的耗时。
9.根据权利要求1-7任一项所述的lua代码执行性能的静态分析方法,其特征在于:函数的性能开销仅包括函数内部的性能开销,不包括调用的子函数的性能开销,所述性能开销即为执行指令的耗时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司;珠海西山居移动游戏科技有限公司,未经珠海金山网络游戏科技有限公司;珠海西山居移动游戏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811076496.5/1.html,转载请声明来源钻瓜专利网。