二进制重排的预分析方法、装置、设备及存储介质制造方法及图纸

技术编号:37371415 阅读:7 留言:0更新日期:2023-04-27 07:16
本申请实施例提供了一种二进制重排的预分析方法、装置、设备及存储介质,涉及应用优化技术领域。该方法包括:通过应用的编译文件计算预设方法函数的第一内存占用信息,预设方法函数为应用启动所调用的方法函数;根据预设方法函数计算应用对应的二进制重排文件的第二内存占用信息;基于第一内存占用信息、第二内存占用信息确定二进制重排分析结果。因此,本申请实施例能够在二进制重排之前获取应用启动速度提升相关的二进制重排分析结果,便于快速得到二进制重排的预期效果和判断二进制重排是否成功,有助于应用优化策略调整的有效进行,且降低了应用设计时间和设计成本。且降低了应用设计时间和设计成本。且降低了应用设计时间和设计成本。

【技术实现步骤摘要】
二进制重排的预分析方法、装置、设备及存储介质


[0001]本申请涉及应用优化
,具体而言,本申请涉及一种二进制重排的预分析方法、装置、设备及存储介质。

技术介绍

[0002]随着科技的发展,智能手机、PAD(平板电脑)等智能终端无论是在硬件上,还是在软件上,都得到了极大提升。用户也越来越喜欢在智能终端上安装各式各样的应用,比如通过视频应用看视频节目,通过聊天应用与好友聊天,通过音乐应用欣赏音乐等,并且这已经成为了用户日常生活的一个重要组成部分。
[0003]在应用使用时,用户常常希望应用能够尽可能快地启动,为了满足用户的需求,设计了多种提升应用启动速度的技术。其中一个比较有代表性的技术就是二进制重排。二进制重排通过对应用启动时调到的方法函数进行再次排列,使得这些方法函数按照顺序紧密规律地排列在打包的二进制文件前面。这样在应用启动时就能够减少数据读取内存缺页中断(Page Fault)的频次,进而加快应用的启动速度。
[0004]但是,应用的二进制重排具有一定的技术门槛,实际操作过程中的每个步骤都可能遇到各种问题,且不同的应用通过二进制重排节省的时间也不一致。而现有技术中,二进制重排的速度提升效果相关的分析结果只能在二进制重排操作之后才能得知,容易导致为了二进制重排付出了比较高的成本,应用后启动速度却无法满足要求,且增加了应用设计成本。

技术实现思路

[0005]本申请实施例提供了一种二进制重排的预分析方法、装置、设备及存储介质,可以解决不能在二进制重排操作之前获取二进制重排的分析结果的问题。为了实现该目的,本申请实施例提供了如下几个方案。
[0006]根据本申请实施例的一个方面,提供了一种二进制重排的预分析方法,该方法包括:
[0007]通过应用的编译文件计算预设方法函数的第一内存占用信息,所述预设方法函数为应用启动所调用的方法函数;
[0008]根据所述预设方法函数计算应用对应的二进制重排文件的第二内存占用信息;
[0009]基于所述第一内存占用信息、所述第二内存占用信息确定二进制重排分析结果。
[0010]在一个可能的实现方式中,所述通过应用的编译文件计算预设方法函数的第一内存占用信息,包括:
[0011]通过预设编译工具编译应用生成链接映射表文件;
[0012]获取所述链接映射表文件中预设方法函数的信息,根据所述信息计算所述预设方法函数占用的虚拟内存页数量,并将所述虚拟内存页数量作为第一内存占用信息,所述信息包括预设方法函数的地址、大小、符号以及预设方法函数对应的代码区的起始地址中的
至少一项。
[0013]在一个可能的实现方式中,所述获取所述链接映射表文件中预设方法函数的信息,包括:
[0014]扫描所述链接映射表文件中的方法函数,并将扫描所得的方法函数的信息存入所述信息对应的字典。
[0015]在一个可能的实现方式中,所述根据所述信息计算所述预设方法函数占用的虚拟内存页数量,包括:
[0016]获取应用的重排文件,根据所述重排文件与字典的映射关系获取预设方法函数对应的地址和大小,基于所述地址和大小确定占用的虚拟内存页数量,所述重排文件包括应用启动所调用的预设方法函数的符号列表。
[0017]在一个可能的实现方式中,所述根据所述预设方法函数计算应用对应的二进制重排文件的第二内存占用信息,包括:
[0018]获取所述预设方法函数的大小相加之和,根据所述大小相加之和确定预设方法函数二进制重排后占用的虚拟内存页数量,并将所述虚拟内存页数量作为第二内存占用信息。
[0019]在一个可能的实现方式中,所述基于所述第一内存占用信息、所述第二内存占用信息确定二进制重排分析结果,包括:
[0020]根据所述第一内存占用信息、第二内存占用信息的差值获取节省的内存缺页中断处理时间,基于所述节省的内存缺页中断处理时间确定二进制重排分析结果。
[0021]在一个可能的实现方式中,所述将扫描所得的方法函数的信息存入所述信息对应的字典,还包括:
[0022]根据所述字典中方法函数的地址、大小获取所述方法函数的校验结果。
[0023]根据本申请实施例的另一个方面,提供了一种二进制重排的预分析装置,预分析装置包括:
[0024]第一内存占用计算模块,用于通过应用的编译文件计算预设方法函数的第一内存占用信息,所述预设方法函数为应用启动所调用的方法函数;
[0025]第二内存占用计算模块,用于根据所述预设方法函数计算应用对应的二进制重排文件的第二内存占用信息;
[0026]分析模块,用于基于所述第一内存占用信息、所述第二内存占用信息的差值获取二进制重排分析结果。
[0027]根据本申请实施例的又一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上所述方法的步骤。
[0028]根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。
[0029]本申请实施例提供的技术方案带来的有益效果是:通过应用的编译文件计算预设方法函数的第一内存占用信息,并根据该预设函数计算应用对应的二进制重排文件的第二内存占用信息,通过得到的第一内存占用信息、第二内存占用信息得到二进制重排分析结果。本申请实施例在对应用执行二进制重排操作前,先计算应用启动所调用的方法函数的
第一内存占用信息,并计算该方法函数在二进制重排后的第二内存占用信息,根据该第一内存占用信息与第二内存占用信息得到二进制重排的分析结果。因此,本申请实施例能够在二进制重排之前获取应用启动速度提升相关的二进制重排分析结果,便于快速得到二进制重排的预期效果和判断二进制重排是否成功,有助于应用优化策略调整的有效进行,且降低了应用设计时间和设计成本。
附图说明
[0030]为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单的介绍。
[0031]图1为本申请实施例提供的一种二进制重排的预分析方法的流程示意图;
[0032]图2为本申请实施例提供的一种计算第一内存占用信息的实施例流程示意图;
[0033]图3为本申请实施例提供的预分析方法的实施例示意图;
[0034]图4为本申请实施例提供的二进制重排的预分析装置的结构示意图;
[0035]图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0036]下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
[0037]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种二进制重排的预分析方法,其特征在于,包括:通过应用的编译文件计算预设方法函数的第一内存占用信息,所述预设方法函数为应用启动所调用的方法函数;根据所述预设方法函数计算应用对应的二进制重排文件的第二内存占用信息;基于所述第一内存占用信息、所述第二内存占用信息确定二进制重排分析结果。2.根据权利要求1所述的方法,其特征在于,所述通过应用的编译文件计算预设方法函数的第一内存占用信息,包括:通过预设编译工具编译应用生成链接映射表文件;获取所述链接映射表文件中预设方法函数的信息,根据所述信息计算所述预设方法函数占用的虚拟内存页数量,并将所述虚拟内存页数量作为第一内存占用信息,所述信息包括预设方法函数的地址、大小、符号以及预设方法函数对应的代码区的起始地址中的至少一项。3.根据权利要求2所述的方法,其特征在于,所述获取所述链接映射表文件中预设方法函数的信息,包括:扫描所述链接映射表文件中的方法函数,并将扫描所得的方法函数的信息存入所述信息对应的字典。4.根据权利要求3所述的方法,其特征在于,所述根据所述信息计算所述预设方法函数占用的虚拟内存页数量,包括:获取应用的重排文件,根据所述重排文件与字典的映射关系获取预设方法函数对应的地址和大小,基于所述地址和大小确定占用的虚拟内存页数量,所述重排文件包括应用启动所调用的预设方法函数的符号列表。5.根据权利要求1所述的方法,其特征在于,所述根据所述预设方法函数计算应用对应的二进制重排文件的第二内存占用信息,包括:获取所述预设方...

【专利技术属性】
技术研发人员:李扬
申请(专利权)人:北京淘友天下技术有限公司
类型:发明
国别省市:

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

1