[发明专利]一种代码链接优化方法有效
申请号: | 202211020379.3 | 申请日: | 2022-08-24 |
公开(公告)号: | CN115309405B | 公开(公告)日: | 2023-08-04 |
发明(设计)人: | 沈英哲;庹凌云;王文东;陈远建;吕彦辉;彭文凭 | 申请(专利权)人: | 北京熵核科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/61;G06F8/71 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 陈霁 |
地址: | 100192 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 链接 优化 方法 | ||
1.一种代码链接优化方法,其特征在于,所述方法包括:
获取程序的安装文件,所述安装文件中包含至少一个类;
将安装文件安装到目标设备上,得到程序镜像,其中,对于安装文件中类的每个实例域,分配一个唯一的索引;
对于安装文件中类的每个虚方法,如果其重写了祖先类中的虚方法,则使用祖先类中的虚方法的索引作为该虚方法的索引,否则,为其分配一个新的索引;
对于所述至少一个类中的每个当前类,将其符号和class-info数据结构的地址添加在所述程序镜像的export_info中,用于安装和链接引用了当前类的其他类,所述class-info数据结构中的第三数据结构只保存当前类中新定义实例域的符号,所述class-info数据结构中的第四数据结构保存当前类中新定义和重写的虚方法的符号;其中,所述至少一个类中的每个当前类均为外部可见的类;
运行程序,对于访问实例域的指令,使用操作数中的索引直接访问对应的实例域;对于调用虚方法的指令,使用操作数中的索引和类的元数据中的虚方法表进行比较,获得实际调用虚方法的地址,并调用该虚方法。
2.根据权利要求1所述的方法,其特征在于,所述索引为整数。
3.根据权利要求1所述的方法,其特征在于,所述将安装文件安装到目标设备上,得到程序镜像,还包括:
对于每个引用实例域的指令,使用分配给它的索引替换指令中原有的操作数;对于每个调用虚方法的指令,使用分配给它的索引替换指令中原有的操作数。
4.根据权利要求1所述的方法,其特征在于,所述程序镜像包括第一数据结构和第二数据结构,所述第一数据结构用于保存为所述实例域分配的索引,所述第二数据结构用于保存为所述虚方法分配的索引。
5.根据权利要求1所述的方法,其特征在于,所述获取程序的安装文件,包括:
获取程序的源代码,将源代码进行编译和转换,得到程序的安装文件,其中,将程序的类、方法和域的符号保存到安装文件中,其中,所述域包括实例域,所述方法包括虚方法。
6.根据权利要求5所述的方法,其特征在于,所述安装文件包括第三数据结构和第四数据结构,所述第三数据结构用于保存所述域的符号,所述第四数据结构用于保存所述方法的符号。
7.根据权利要求6所述的方法,其特征在于,所述实例域的索引与实例域的符号一一对应;所述虚方法的索引与虚方法的符号一一对应。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京熵核科技有限公司,未经北京熵核科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211020379.3/1.html,转载请声明来源钻瓜专利网。