编译优化方法、装置、电子设备及计算机可读介质制造方法及图纸

技术编号:35899494 阅读:13 留言:0更新日期:2022-12-10 10:34
本申请公开了一种编译优化方法、装置、电子设备及计算机可读介质,涉及计算机技术领域,方法包括:确定应用程序的所有待选线程中与用户交互相关的目标线程;获取每个所述目标线程对应的所有代码单元的运行参数;基于每个代码单元的运行参数,从每个所述目标线程对应的所有代码单元中,查找满足预设条件的目标代码单元;将所述目标代码单元编译为机器码。因此,从用户交互相关的线程中确定的目标代码单元,并针对该目标代码单元预先编译为机器码,使得该目标代码单元运行更加流畅,进而使用用户更加能够感知到代码流畅所带来的优良的使用体验。用体验。用体验。

【技术实现步骤摘要】
编译优化方法、装置、电子设备及计算机可读介质


[0001]本申请涉及计算机
,更具体地,涉及一种编译优化方法、装置、电子设备及计算机可读介质。

技术介绍

[0002]为了提高电子设备运行应用程序的效率,可以通过编译器对应用程序进行编译优化。目前,常用的方式是收集用户终端中特定应用程序的热点代码信息,并对收集的热点代码信息进行编译为机器码,从而在后续运行应用的该代码的时候,可以直接使用该机器码而不必编译,能够提高代码的运行速度。但是,目前确定热点代码的方式不够合理,使得所确定的热点代码不够准确。

技术实现思路

[0003]本申请提出了一种编译优化方法、装置、电子设备及计算机可读介质,以改善上述缺陷。
[0004]第一方面,本申请实施例提供了一种编译优化方法,包括:确定应用程序的所有待选线程中与用户交互相关的目标线程;获取每个所述目标线程对应的所有代码单元的运行参数;基于每个代码单元的运行参数,从每个所述目标线程对应的所有代码单元中,查找满足预设条件的目标代码单元;将所述目标代码单元编译为机器码。
[0005]第二方面,本申请实施例还提供了一种编译优化装置,包括:确定单元、获取单元、查找单元和编译单元。确定单元,用于确定应用程序的所有待选线程中与用户交互相关的目标线程。获取单元,用于获取每个所述目标线程对应的所有代码单元的运行参数。查找单元,用于基于每个代码单元的运行参数,从每个所述目标线程对应的所有代码单元中,查找满足预设条件的目标代码单元。编译单元,用于将所述目标代码单元编译为机器码。
[0006]第三方面,本申请实施例还提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述方法。
[0007]第四方面,本申请实施例还提供了一种计算机可读介质,所述可读存储介质存储有处理器可执行的程序代码,所述程序代码被所述处理器执行时使所述处理器执行上述方法。
[0008]第五方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现上述方法。
[0009]本申请提供的编译优化方法、装置、电子设备及计算机可读介质,确定应用程序的所有待选线程中与用户交互相关的目标线程,获取每个所述目标线程对应的所有代码单元的运行参数,基于每个代码单元的运行参数,从每个所述目标线程对应的所有代码单元中,查找满足预设条件的目标代码单元,也就是说,本申请所确定的热点代码即目标代码单元是基于应用程序中与用户交互相关的线程,然后,将该目标代码单元由字节码编译为机器
码。应用程序后续执行该目标代码单元的时候,可以直接使用已经预编译的机器码而不必再次编译该代码,因此,从用户交互相关的线程中确定的目标代码单元,并针对该目标代码单元预先编译为机器码,使得该目标代码单元运行更加流畅,进而使用用户更加能够感知到代码流畅所带来的优良的使用体验。
[0010]本申请实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0011]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1示出了本申请一实施例提供的一种编译优化方法的方法流程图;
[0013]图2示出了本申请另一实施例提供的一种编译优化方法的方法流程图;
[0014]图3示出了本申请实施例提供的线程间调用的示意图;
[0015]图4示出了本申请一实施例提供的应用程序所显示的界面的示意图;
[0016]图5示出了本申请另一实施例提供的应用程序所显示的界面的示意图;
[0017]图6示出了本申请一实施例提供的一种编译优化装置的模块框图;
[0018]图7示出了本申请一实施例提供的电子设备的结构框图;
[0019]图8是本申请实施例的用于保存或者携带实现根据本申请实施例的编译优化方法的程序代码的存储单元。
具体实施方式
[0020]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0021]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0022]通常,Android有两种虚拟机执行环境:Dalvik和Art。在Dalvik虚拟机下,应用每次运行的时候,字节码都需要通过即时编译器(JIT)转换为机器码,才能被机器运行,这会拖慢应用的执行效率。在Android 4.4时,Art虚拟机开始替代Dalvik,在最开始的Art虚拟机中,应用在第一次安装的时候,系统会通过一个名称为dex2oat的工具将APK中的dex文件编译成包含本地机器码的oat文件存放下来。这样做之后,在程序执行的时候,就可以直接
使用已经编译好的机器码以加快效率,这种预先编译机器码的机制叫做AOT。AOT的缺点是应用安装和系统升级之后的应用优化过程比较耗时(需要重新将dex字节码编译成本地机器码),且优化后的文件会占用额外的存储空间。
[0023]Android平台的绝大多数应用是使用Java语言写的,Java程序最初仅仅通过JAVA解释器(Interpreter)解释执行,即对字节码逐条解释执行,1.理论上看AOT方式的性能是最好的,但是相应的代价是编译时间较长、生成的可执行程序的文件体积较大。其在程序编译阶段就可以完成机器码的转换,不需要在程序实际运行过程中进行编译,进而不会影响到运行时的性能,然而,这种方式的执行速度相对会比较慢,尤其当某个方法或代码块运行特别频繁时,这种方式的执行效率就显得很低。于是后来在虚拟机中引入了JIT编译器,当虚拟机发现某个方法或者代码块运行特别频繁时,就会把这些代码认定为“hot spot code”(热点代码),将之记录下来保存到profile文件,为了提高热点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编译优化方法,其特征在于,包括:确定应用程序的所有待选线程中与用户交互相关的目标线程;获取每个所述目标线程对应的所有代码单元的运行参数;基于每个代码单元的运行参数,从每个所述目标线程对应的所有代码单元中,查找满足预设条件的目标代码单元;将所述目标代码单元编译为机器码。2.根据权利要求1所述的方法,其特征在于,确定应用程序的所有待选线程中与用户交互相关的目标线程,包括:确定所述应用程序中的每个所述待选线程对应的功能;从所述应用程序中的所有线程中,查找属于指定功能的待选线程,作为目标线程,其中,所述指定功能的线程应用于用户交互。3.根据权利要求2所述的方法,其特征在于,所述指定功能包括界面滑动功能、触控响应功能、音频播放功能、录音功能、图像采集功能、视频播放功能的至少一种。4.根据权利要求2所述的方法,其特征在于,还包括:确定每个不属于指定功能的功能模块对应的待选线程,作为第一线程;从每个所述第一线程中查找第二线程,其中,所述第二线程需调用其他线程并等待其他线程的返回结果;遍历所有所述第二线程,若所述第二线程的所有被调用线程对应的功能模块中存在所述指定功能的功能模块,则确定所述第二线程为目标线程。5.根据权利要求1

4任一所述的方法,其特征在于,所述确定应用程序的所有待选线程中与用户交互相关的目标线程之前,还包括:从应用程序的所有线程中查找应用于所述应用程序的指定界面的线程,作为待选线程。6.根据权利要求5所述的方法,其特征在于,所述指定界面为所述应用程序的被使用频率大于指定频率的界面。7.根据权利要求1

4任一所述的方法,其特征在于,所述代码单元的运行参数包括代码单元的运行频率和运行时长的至少一种。8.根据权利要求7所述的方法,其特征在于,所述代码单元的运行参数包括代码单元的运行频率,基于每个代码单元的运行参数,从每个所述目标线程对应的所有代码单元中,查找满足预设条件的目标代码单元,包括:从每个所述目标线程对应的所有代码单元中,查找运行频率大于第一阈值的代码单元,作为目标代码单元。9.根据权利要...

【专利技术属性】
技术研发人员:崔英云马江杨福藤
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:

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

1