[发明专利]字节码的优化方法、装置、存储介质、处理器及终端有效
| 申请号: | 201711431847.5 | 申请日: | 2017-12-26 |
| 公开(公告)号: | CN108021370B | 公开(公告)日: | 2020-05-12 |
| 发明(设计)人: | 白墨琛 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
| 代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
| 地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 字节 优化 方法 装置 存储 介质 处理器 终端 | ||
1.一种字节码的优化方法,其特征在于,包括:
获取待优化函数;
解析所述待优化函数,得到函数字节码;
分析所述函数字节码,得到与函数调用关联的第一字节码段;
替换所述第一字节码段中父函数调用子函数的第二字节码段,并将所述子函数的上下文空间合并至所述父函数,其中,所述父函数为调用操作的执行主体,所述子函数为所述调用操作的执行对象;
其中,替换所述第一字节码段中的所述第二字节码段包括:确定所述子函数的第三字节码段中存在第四类指令,其中,所述第四类指令中携带有指示待跳转字节位置的参数;依据所述第四类指令所占用的字节,采用所述第三字节码段替换所述第二字节码段,并调整所述待跳转字节位置。
2.根据权利要求1所述的方法,其特征在于,分析所述函数字节码,得到所述第一字节码段还包括:
在所述函数字节码中查找函数调用指令字节码;
按照所述调用指令字节码确定所述第一字节码段。
3.根据权利要求1所述的方法,其特征在于,替换所述第一字节码段中的所述第二字节码段还包括:
确定所述子函数的第三字节码段中存在第一类指令,其中,所述第一类指令中未携带参数;
依据所述第一类指令所占用的字节,采用所述第三字节码段替换所述第二字节码段。
4.根据权利要求1所述的方法,其特征在于,替换所述第一字节码段中的所述第二字节码段还包括:
确定所述子函数的第三字节码段中存在第二类指令,其中,所述第二类指令中携带有预先定义的参数;
依据所述第二类指令所占用的字节,采用所述第三字节码段替换所述第二字节码段。
5.根据权利要求1所述的方法,其特征在于,替换所述第一字节码段中的所述第二字节码段还包括:
确定所述子函数的第三字节码段中存在第三类指令,其中,所述第三类指令中携带有指向预设元组的参数;
依据所述第三类指令所占用的字节,采用所述第三字节码段替换所述第二字节码段,并调整所述预设元组内对象的索引位置。
6.根据权利要求1所述的方法,其特征在于,替换所述第一字节码段中的所述第二字节码段还包括:
确定所述子函数的第三字节码段中存在第五类指令,其中,所述第五类指令用于返回执行结果;
当所述第五类指令的接续指令为所述父函数中待执行的指令时,采用所述第三字节码段替换所述第二字节码段,并删除所述第五类指令;或者,当所述第五类指令的接续指令为其他子函数中待执行的指令时,采用所述第三字节码段替换所述第二字节码段,并继续执行所述父函数中待执行的指令。
7.一种字节码的优化装置,其特征在于,包括:
获取模块,用于获取待优化函数;
解析模块,用于解析所述待优化函数,得到函数字节码;
分析模块,用于分析所述函数字节码,得到与函数调用关联的第一字节码段;
优化模块,用于替换所述第一字节码段中父函数调用子函数的第二字节码段,并将所述子函数的上下文空间合并至所述父函数,其中,所述父函数为调用操作的执行主体,所述子函数为所述调用操作的执行对象;
其中,所述优化模块包括:第四确定单元,用于确定所述子函数的第三字节码段中存在第四类指令,其中,所述第四类指令中携带有指示待跳转字节位置的参数;第四优化单元,用于依据所述第四类指令所占用的字节,采用所述第三字节码段替换所述第二字节码段,并调整所述待跳转字节位置。
8.根据权利要求7所述的装置,其特征在于,所述分析模块包括:
查找单元,用于在所述函数字节码中查找函数调用指令字节码;
确定单元,用于按照所述调用指令字节码确定所述第一字节码段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711431847.5/1.html,转载请声明来源钻瓜专利网。





