二进制代码处理方法、优化器、电子设备及存储介质与流程
本申请涉及计算机,具体而言,涉及一种二进制代码处理方法、优化器、电子设备及存储介质。
背景技术:
1、在计算机技术领域,特别是针对高性能计算和实时系统,优化程序的执行效率日益重要。二进制优化与布局工具(binary optimization and layout tool,可简称为llvmbolt)等程序优化器,通过分析程序的运行时特征,能够对二进制代码进行动态调整,从而提升程序的运行性能。在优化方法中可以将频繁执行的代码,即热点代码,集中布局,以改善缓存和快表的利用效率,减少数据加载延迟,进而加快程序执行速度。
2、然而,相关技术中的优化方法,如采用基于贪心算法的热点代码集中策略时,当程序中存在多个独立的热点区域时,贪心算法倾向于将所有热点代码强制集中到一个区域内,忽略了不同热点代码之间的自然分离,导致程序的局部性优化不足。综上,造成相关技术中当二进制代码数据中存在多个热点代码时,会将热点代码集中在一个区域中,会降低程序的局部性,从而削弱了程序性能的提升。
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本申请实施例提供了一种二进制代码处理方法、优化器、电子设备及存储介质,以至少解决相关技术中当二进制代码数据中存在多个热点代码时,会将热点代码集中在一个区域中,导致程序的局部性优化不足,从而削弱了程序性能的提升的技术问题。
2、根据本申请实施例的一个方面,提供了一种代码处理方法,包括:获取二进制代码数据执行过程中,二进制代码数据中的多个代码段的执行频率;基于多个代码段的执行频率,确定多个代码段中的多个目标代码段,其中,目标代码段的执行频率大于其他代码段的执行频率,其他代码段是二进制代码数据中除目标代码段之外的任意一个代码段;基于多个目标代码段在虚拟地址空间中的位置,对多个目标代码段进行聚类,得到多个聚类集合,其中,不同聚类集合中的目标代码段的密集程度不同;基于多个聚类集合,对多个目标代码段在虚拟地址空间中的位置进行调整。
3、根据本申请实施例的另一方面,还提供了一种二进制代码优化器,包括:获取模块,用于获取二进制代码数据执行过程中,二进制代码数据中的多个代码段的执行频率;确定模块,用于基于多个代码段的执行频率,确定多个代码段中的多个目标代码段,其中,目标代码段的执行频率大于其他代码段的执行频率,其他代码段是二进制代码数据中除目标代码段之外的任意一个代码段;聚类模块,用于基于多个目标代码段在虚拟地址空间中的位置,对多个目标代码段进行聚类,得到多个聚类集合,其中,不同聚类集合中的目标代码段的密集程度不同;调整模块,用于基于多个聚类集合,对多个目标代码段在虚拟地址空间中的位置进行调整。
4、根据本申请实施例的另一方面,还提供了一种电子设备,包括:存储器,存储有可执行程序;处理器,用于运行程序,其中,程序运行时执行本申请各个实施例中的方法。
5、根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序被处理器执行时实现根据本申请各个实施例中的方法。
6、根据本申请实施例的另一方面,还提供了一种计算机程序产品,包括计算机指令,计算机指令在被处理器执行时实现本申请各个实施例中的方法。
7、根据本申请实施例的另一方面,还提供了一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行时实现本申请各个实施例中的方法。
8、根据本申请实施例的另一方面,还提供了一种计算机程序,计算机指令被处理器执行时实现本申请各个实施例中的方法。
9、在本申请实施例中,首先获取二进制代码数据在执行过程中,二进制代码数据中多个代码段的执行频率;接着,根据这些执行频率,识别出多个目标代码段,这些目标代码段的执行频率高于其他代码段;接着,根据这些目标代码段在虚拟地址空间中的位置,对目标代码段进行聚类分析,得到多个聚类集合,不同的聚类集合中目标代码段的密集程度不同;最后,基于多个聚类集合,调整目标代码段在虚拟地址空间中的位置。容易注意到的是,本申请通过二进制代码数据在执行过程中各代码段的执行频率确定出多个目标代码段,也即多个热点代码;通过将多个热点代码聚类到多个独立的聚类集合,也即聚类到多个区域;并在虚拟地址空间中合理分布这些聚类集合,由于热点代码被合理地分散到不同的区域,可以避免热点之间的频繁切换而消耗额外的资源,减少了热点之间的数据访问冲突,可以有效增强代码的局部性,使得缓存和快表能够更高效地预取和存储热点区域的数据和指令,从而显著提高缓存和快表的命中率,提高了程序的执行性能,进而解决了相关技术中当二进制代码数据中存在多个热点代码时,会将热点代码集中在一个区域中,导致程序的局部性优化不足,从而削弱了程序性能的提升的技术问题。
10、容易注意到的是,上面的通用描述和后面的详细描述仅仅是为了对本申请进行举例和解释,并不构成对本申请的限定。
1.一种二进制代码处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个目标代码段在虚拟地址空间中的位置关系,对所述多个目标代码段进行聚类,得到多个聚类集合,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于不同目标代码段在所述虚拟地址空间中的位置,确定不同目标代码段之间的互达性距离,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于任意一个目标代码段与其他目标代码段之间的距离,确定任意一个目标代码段的核心距离,包括:
5.根据权利要求4所述的方法,其特征在于,所述基于任意一个目标代码段与所述预设数量的目标代码段之间的距离,确定任意一个目标代码段的核心距离,包括:
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
7.根据权利要求3所述的方法,其特征在于,所述基于不同目标代码段之间的距离、以及不同目标代码段的核心距离,确定不同目标代码段之间的互达性距离,包括:
8.根据权利要求2所述的方法,其特征在于,所述对所述代码有向图进行分裂,得到所述多个聚类集合,包括:
9.根据权利要求8所述的方法,其特征在于,所述对所述代码有向图进行分裂,得到多个初始集合,包括:
10.根据权利要求1至9中任意一项所述的方法,其特征在于,所述基于所述多个聚类集合,对所述多个目标代码段在所述虚拟地址空间中的位置进行调整,包括:
11.一种二进制代码优化器,其特征在于,包括:
12.一种电子设备,其特征在于,包括:
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的可执行程序,其中,在所述可执行程序被处理器执行时实现根据权利要求1至10中任意一项所述的方法。
14.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令在被处理器执行时实现根据权利要求1至10中任意一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com