编译链接优化方法技术

技术编号:21431448 阅读:41 留言:0更新日期:2019-06-22 11:42
本发明专利技术涉及一种编译链接优化方法,其利用GNU开源编译链接工具BINUTILS的链接器LD的地址空间分配功能、符号决议功能以及重定位功能,对链接器的链接功能进行优化,并且,优化的功能包括符号表建立功能、查找功能以及链接过程中的查询功能。本发明专利技术提供的编译链接优化方法,克服了编译链接速度慢的缺陷,可降低链接时内存占用率,从而达到提升编译链接速度、节省时间成本、提高生产效率的目的。

【技术实现步骤摘要】
编译链接优化方法
本专利技术涉及计算机软件程序运行
,具体涉及一种编译链接优化方法。
技术介绍
GNU工具链在Linux系统中的作用重大,编译链接占有重要比例。近些年,Linux系统迅速发展,随着计算机技术的不断发展,越来越多的个人和企业开始大量使用Linux系统,各种应用程序的种类不断增加,程序功能不断发生变化,变的愈加多样和复杂,这样的现象导致了程序代码量的急剧增加和模块的增加,同时也给程序的编译链接带来了极大的负担。编译集成过程中,模块的增加导致了二进制目标文件的增加,直接导致需要链接的符号大量增加,这样的数量级将会占用大量系统资源,严重拖慢系统的运行速度,所以将引入一种大数据的查询处理方式,以解决链接带来的问题。原有的链接器使用了hash算法。hash算法就是将任一给定长度的数据(字符或数值等)通过给定函数映射为较短的、固定长度的数值,这个数值被称为hash值,这个数值便作为索引。hash表是通过给定的hash函数H(key)和处理冲突方法将一组关键字映射到一个已申请好的内存空间上,H(key)作为给定关键字在内存空间中的存储位置,这部分内存空间被称为hash表或散列,本文档来自技高网...

【技术保护点】
1.一种编译链接优化方法,其特征在于:利用GNU开源编译链接工具BINUTILS的链接器LD的地址空间分配功能、符号决议功能以及重定位功能,对链接器的链接功能进行优化,并且,优化的功能包括符号表建立功能、查找功能以及链接过程中的查询功能。

【技术特征摘要】
1.一种编译链接优化方法,其特征在于:利用GNU开源编译链接工具BINUTILS的链接器LD的地址空间分配功能、符号决议功能以及重定位功能,对链接器的链接功能进行优化,并且,优化的功能包括符号表建立功能、查找功能以及链接过程中的查询功能。2.如权利要求1所述的编译链接优化方法,其特征在于:所述符号表建立功能的优化为创建GL_KV符号表。3.如权利要求2所述的编译链接优化方法,其特征在于:符号表建立功能的优化中,通过下述步骤创建GL_KV符号表:步骤S1:分别收集GNU库符号和基本图形库符号;步骤S2:将步骤S1中收集的符号的符号名输入布隆过滤器;步骤S3:将布隆过滤器的输出作为索引算法的输入,确定符号在符号表中的位置;步骤S4:将符号信息写入符号表。4.如权利要求3所述的译链接优化方法,其特征在于还包括:步骤S5:如果经索引算法计算后发现有重复,则另填一张表存放数据,是否重复由GL_KV_sym->rep->sym_r确定;所述步骤S3中,索引算法为Hash索引算法;并且,所述步骤S3-步骤S4中,布隆过滤器通过多个hash函数得出了多个值,以这多个值为索引来标记GL_KV位数组,同时以该多个值作为hash索引算法的输入,得出各个符号在GL_KV表中的位置,将符号信息写入GL_KV表中。5.如权利要求2-4中所述的编译链接优化方法,其特征在于:所述查找功能的优化,通过下述步骤完成:步骤SA:建立一个针对GL_KV符号的查询表;步骤SB:输入sym_key,通过布隆过滤器定位相应的sym_key是否存在于查询表中;步骤SC:若不存在,则反馈查找失败;若存在,则执行步骤SD;步骤SD:判断所查找的sym_key是否为flasepositive的,若是,则反馈查找失败,若不是,则反馈查找成功。6.如权利要求5所述的编译链接优化方法,其特征在于:所述步骤SB中,布隆过滤器由多个hash函数及一个位数组组成,并且,所述步骤SD中,通过GL_KV_sym->sym_key的值来判断所查找的sym_key是否是flasepositive。7.如权利要求1述的编译链接优化方法,其特征在于:所述链接过程中的查询功能优化,通过下述步骤完成:步骤Sa:分别建立一个针对OL_KV符号及GL_K...

【专利技术属性】
技术研发人员:孟杰薛皓琳马瑶瑶卢彦杨建生张蓓方平冯艳红穆鹤林程毅轩杨晓璇吴昆鹏李洪彬申利飞
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1