[发明专利]编译链接优化方法有效
申请号: | 201711294532.0 | 申请日: | 2017-12-08 |
公开(公告)号: | CN109918074B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 孟杰;薛皓琳;马瑶瑶;卢彦;杨建生;张蓓;方平;冯艳红;穆鹤林;程毅轩;杨晓璇;吴昆鹏;李洪彬;申利飞 | 申请(专利权)人: | 中标软件有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445;G06F16/901 |
代理公司: | 北京汇智英财专利代理事务所(普通合伙) 11301 | 代理人: | 郑玉洁 |
地址: | 200030 上海市徐汇*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 链接 优化 方法 | ||
1.一种编译链接优化方法,其特征在于:利用GNU开源编译链接工具BINUTILS的链接器LD的地址空间分配功能、符号决议功能以及重定位功能,对链接器的链接功能进行优化,并且,优化的功能包括符号表建立功能、查找功能以及链接过程中的查询功能;
GNU组件维护一个GNU工具链和基本图形库所能提供的基础的符号表,所述符号表包括符号名、符号值或地址、类型、所在文件、同名符号数,符号作为key,地址作为value,所述符号表的符号名为GL_KV,其中:G:GNU,L:链接器,K:key,V:value,表项为GL_KV_sym,所述符号表建立功能的优化为创建GL_KV符号表,所述创建GL_KV符号表包括以下步骤:
步骤S1:分别收集GNU库符号和基本图形库符号;
步骤S2:将步骤S1中收集的符号的符号名输入布隆过滤器;
步骤S3:将布隆过滤器的输出作为索引算法的输入,确定符号在符号表中的位置;
步骤S4:将符号信息写入符号表;
所述查找功能的优化,通过下述步骤完成:
步骤SA:建立一个针对GL_KV符号的查询表;
步骤SB:输入sym_key,通过布隆过滤器定位相应的sym_key是否存在于查询表中;
步骤SC:若不存在,则反馈查找失败;若存在,则执行步骤SD;
步骤SD:判断所查找的sym_key是否为flase positive的,若是,则反馈查找失败,若不是,则反馈查找成功;
所述链接过程中的查询功能优化,通过下述步骤完成:
步骤Sa:分别建立一个针对OL_KV符号及GL_KV符号的查询表,其中O:目标文件;
步骤Sb:输入sym_key;
步骤Sc:确定针对OL_KV符号的查询表中是否存在符合要求的经标记的sym_key,若存在,则标记其存在;
步骤Sd:确定针对GL_KV符号的查询表中是否存在符合要求的经标记的sym_key,若存在,也标记其存在;
步骤Se:若经过步骤Sc及步骤Sd,两个查询表中均不存在符合要求的经标记的sym_key,则报错;
若两个查询表中有一个存在标记的sym_key,则使用该sym_key对应的sym_value;
若两个查询表中均存在标记的sym_key,则比较强弱,若两个查询表中的标记的sym_key均为强符号,则报错,若两个查询表中的标记的sym_key有一个为强符号,则选择强符号对应的sym_value。
2.如权利要求1所述的编译链接优化方法,其特征在于:所述步骤Sc包括:
步骤Sc1:通过布隆过滤器定位相应的sym_key是否存在于针对OL_KV符号的查询表中;若不存在,则执行步骤Sd,若存在,则执行步骤Sc2;
步骤Sc2:判断相应的sym_key是否为flase positive的sym_key,若不是,则标记此sym_key,得到标记的sym_key并执行步骤Sd;若是,则执行步骤Sc3;
步骤Sc3:查询重复数据中是否有此sym_key,若有,则标记此sym_key,得到标记的sym_key并执行步骤Sd;若无,则直接执行步骤Sd。
3.如权利要求1所述的编译链接优化方法,其特征在于:所述步骤Sd包括:
步骤Sd1:通过布隆过滤器定位相应的sym_key是否存在于针对GL_KV符号的查询表中;若不存在,则执行步骤Se,若存在,则执行步骤Sd2;
步骤Sd2:判断相应的sym_key是否为flase positive的sym_key,若不是,则标记此sym_key,得到标记的sym_key并执行步骤Se;若是,则执行步骤Sd3;
步骤Sd3:查询重复数据中是否有此sym_key,若有,则标记此sym_key,得到标记的sym_key并执行步骤Se;若无,则直接执行步骤Se。
4.如权利要求1所述的编译链接优化方法,其特征在于:所述步骤Sa中,针对OL_KV符号及GL_KV符号的查询表由多个hash函数及一个位数组组成的布隆过滤器和一个hash索引算法计算得出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中标软件有限公司,未经中标软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711294532.0/1.html,转载请声明来源钻瓜专利网。