一种编译优化方法、电子设备和存储介质技术

技术编号:38380608 阅读:9 留言:0更新日期:2023-08-05 17:39
本申请提供一种编译优化方法、电子设备和存储介质,涉及编译优化领域,能够提升重要场景中应用程序的运行速度,提高用户的使用体验。该方法包括:电子设备获取目标应用程序的应用场景信息,并基于应用场景信息确定目标应用程序所处的目标应用场景;在目标应用场景属于重要场景集的情况下,电子设备将目标应用程序在目标应用场景中执行的所有函数确定为第一热点函数,以得到目标应用程序在目标应用场景中的第一热点函数信息;第一热点函数信息包括:所有第一热点函数的函数标识以及重要场景的标识;重要场景集中包括多个重要场景;电子设备基于目标应用程序的所有第一热点函数信息,生成热点函数编译文件。生成热点函数编译文件。生成热点函数编译文件。

【技术实现步骤摘要】
一种编译优化方法、电子设备和存储介质


[0001]本申请涉及编译优化领域,尤其涉及一种编译优化方法、电子设备和存储介质。

技术介绍

[0002]随着电子设备上应用程序(可简称为应用)的广泛使用,应用程序的种类和开发手段越来越多。为了提高应用程序首次启动或安装时的安装和启动速度,电子设备会在应用程序安装时,可以采用解释执行的方式安装并启动应用程序,而不对应用程序的安装包中的中间代码文件(例如dex文件)进行预先编译(AOT,ahead

of

time)。待应用程序使用一定时长后,电子设备则可以通过配置文件(profile文件)记录热点函数,并对记录的热点函数进行编译,以便后续应用程序运行时用到热点函数时,运行相应的编译文件,从而提高应用程序的运行效率。
[0003]但是,现有技术中,是将执行次数(由调用次数和/或被调用次数得出)大于一定阈值的函数确定为热点函数的。而这会导致某些重要函数未被认定为热点函数,从而使得应用程序处于这类重要函数对应的应用场景或执行这类重要的函数相关的业务时,需要解释执行这类重要函数,降低了应用程序的运行效率,使用户的使用体验欠佳。

技术实现思路

[0004]本申请实施例提供一种编译优化方法,能够提升重要场景中应用程序的运行速度,提高用户的使用体验。
[0005]为达到上述目的,本申请的实施例采用如下技术方案:第一方面,本申请提供了一种编译优化方法,应用于电子设备。该方法包括:电子设备获取目标应用程序的应用场景信息,并基于应用场景信息确定目标应用程序所处的目标应用场景;在目标应用场景属于重要场景集的情况下,电子设备将目标应用程序在目标应用场景中执行的所有函数确定为第一热点函数,以得到目标应用程序在目标应用场景中的第一热点函数信息;第一热点函数信息包括:所有第一热点函数的函数标识以及重要场景的标识;重要场景集中包括多个重要场景;电子设备基于目标应用程序的所有第一热点函数信息,生成热点函数编译文件。
[0006]实际中,重要场景一般是对于用户而言,比较重要的场景,这些场景中相应应用程序的运行速度与用户的使用体验之间的关系是更为重要的。如果重要场景中的某些使用频率较低的函数未被认定为热点函数并编译的话,会降低重要场景中应用程序的运行速度,降低用户的使用体验。所以基于上述实施例提供的技术方案,可以将重要场景中执行过或调用过的所有函数都认定为热点函数并编译,会大大提升重要场景中应用程序的运行速度,提高用户的使用体验。
[0007]在第一方面的一种可能的设计方式中,电子设备基于目标应用程序的所有第一热点函数信息,生成热点函数编译文件,包括:电子设备基于目标应用程序的所有第一热点函数信息,生成配置文件;电子设备基于配置文件中对应不同重要场景的第一热点函数的函
数标识,对所有第一热点函数进行编译,以得到热点函数编译文件。
[0008]实际中,电子设备的在对目标应用程序进行编译时,若存在预先确定好的热点函数,则采用的编译方式中需要先基于热点函数生成配置文件再进行编译。所以基于上述方案,可以顺利完成对热点函数的编译。
[0009]在第一方面的一种可能的设计方式中,电子设备基于目标应用程序的所有第一热点函数信息,生成配置文件,包括:电子设备基于目标应用程序的所有第一热点函数信息中重要场景的标识,将对应不同重要场景的第一热点函数的函数标识分类聚合,以生成配置文件。
[0010]基于上述技术方案,由于配置文件中对应不同重要场景的第一热点函数的分裂聚合过的,所以电子设备后续基于该配合文件生成的热点函数编译文件中对应同一重要场景的热点函数的机器码聚合在同一区域组成对应该重要场景的机器码段。如此一来,后续电子设备在对目标应用程序运行时,若需要执行对应某一重要场景的热点函数,可以从热点函数编译文件中尽可能的快的获取到所有该重要场景的热点函数,提高目标应用程序的运行效率。
[0011]在第一方面的一种可能的设计方式中,电子设备基于目标应用程序的所有第一热点函数信息中重要场景的标识,将对应不同重要场景的第一热点函数的函数标识分类聚合,以生成配置文件,包括:电子设备基于目标应用程序的所有第一热点函数信息中重要场景的标识,将对应不同重要场景的第一热点函数的函数标识分类聚合,得到对应不同重要场景的第一热点函数聚合结果;电子设备基于第一重要场景对应的第一热点函数信息中不同第一热点函数的调用关系,采用预设规则对第一重要场景对应的第一热点函数聚合结果中的第一热点函数的函数标识的位置进行调整;第一重要场景为目标应用程序对应的多个重要场景中的任一个;预设规则包括:亲和性越高的两个第一热点函数在第一热点函数聚合结果中的位置越相近;任意两个第一热点函数之间的调用次数或被调用次数越多,则任意两个第一热点函数的亲和性越高;电子设备基于调整后的不同重要场景对应的第一热点函数聚合结果,生成配置文件。
[0012]基于上述技术方案,配置文件中可以反映出不同第一热点函数的亲和性,进而后续电子设备在基于该配置文件生成的热点函数编译文件,可以基于该亲和性将亲和性更高的第一热点函的机器码放置的更相近。这样一来,后续电子设备运行目标应用程序需要执行热点函数时,便可以减少内存中加载热点函数编译文件的内容的加载次数,并减少缓存未命中和缓存抖动的次数。进而提高电子设备中目标应用程序的运行效率,提高用户的使用体验。
[0013]在第一方面的一种可能的设计方式中,电子设备基于配置文件中对应不同重要场景的第一热点函数的函数标识,对所有第一热点函数进行编译,以得到热点函数编译文件,包括:电子设备基于配置文件中对应不同重要场景的第一热点函数的函数标识,对所有第一热点函数进行编译,并将对应同一重要场景的第一热点函数的编译在热点函数编译文件中的同一机器码段中。
[0014]基于上述技术方案,电子设备便可以将同一重要场景的第一热点函数的机器码设置在同一机器码段中,后续电子设备在对目标应用程序运行时,若需要执行对应某一重要场景的热点函数,可以从热点函数编译文件中尽可能的快的获取到所有该重要场景的热点
函数,提高目标应用程序的运行效率。
[0015]在第一方面的一种可能的设计方式中,电子设备基于配置文件中对应不同重要场景的第一热点函数的函数标识,对所有第一热点函数进行编译,以得到热点函数编译文件,包括:电子设备根据配置文件中每个重要场景对应的所有第一热点函数中,不同第一热点函数的位置关系,确定不同第一热点函数的亲和性;电子设备根据每个重要场景对应的第一热点函数之间的亲和性进行编译,得到每个重要场景对应的机器码段;任一个重要场景对应的机器码段中包括任一个重要场景对应的所有第一热点函数的机器码,且亲和性越高的两个第一热点函数的机器码之间的位置越相近;电子设备基于每个重要场景对应的机器码段,组合生成热点函数编译文件。
[0016]基于上述技术方案,电子设备便可以在充分考虑到不同热点函数的亲和性的基础上,生成热点函数编译文件。在该热点函数编译文件中可以反映出不同热本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编译优化方法,应用于电子设备,其特征在于,该方法包括:所述电子设备获取目标应用程序的应用场景信息,并基于所述应用场景信息确定目标应用程序所处的目标应用场景;在所述目标应用场景属于重要场景集的情况下,所述电子设备将所述目标应用程序在目标应用场景中执行的所有函数确定为第一热点函数,以得到目标应用程序在目标应用场景中的第一热点函数信息;所述第一热点函数信息包括:所有第一热点函数的函数标识以及重要场景的标识;所述重要场景集中包括多个重要场景;所述电子设备基于所述目标应用程序的所有所述第一热点函数信息,生成热点函数编译文件。2.根据权利要求1所述的方法,其特征在于,所述电子设备基于所述目标应用程序的所有所述第一热点函数信息,生成热点函数编译文件,包括:所述电子设备基于所述目标应用程序的所有第一热点函数信息,生成配置文件;所述电子设备基于所述配置文件中对应不同重要场景的第一热点函数的函数标识,对所有所述第一热点函数进行编译,以得到热点函数编译文件。3.根据权利要求2所述的方法,其特征在于,所述电子设备基于所述目标应用程序的所有第一热点函数信息,生成配置文件,包括:所述电子设备基于所述目标应用程序的所有第一热点函数信息中重要场景的标识,将对应不同重要场景的第一热点函数的函数标识分类聚合,以生成所述配置文件。4.根据权利要求3所述的方法,其特征在于,所述电子设备基于所述目标应用程序的所有第一热点函数信息中重要场景的标识,将对应不同重要场景的第一热点函数的函数标识分类聚合,以生成所述配置文件,包括:所述电子设备基于所述目标应用程序的所有第一热点函数信息中重要场景的标识,将对应不同重要场景的第一热点函数的函数标识分类聚合,得到对应不同重要场景的第一热点函数聚合结果;所述电子设备基于第一重要场景对应的第一热点函数信息中不同第一热点函数的调用关系,采用预设规则对所述第一重要场景对应的所述第一热点函数聚合结果中的第一热点函数的函数标识的位置进行调整;所述第一重要场景为所述目标应用程序对应的多个重要场景中的任一个;所述预设规则包括:亲和性越高的两个第一热点函数在第一热点函数聚合结果中的位置越相近;任意两个第一热点函数之间的调用次数或被调用次数越多,则所述任意两个第一热点函数的亲和性越高;所述电子设备基于调整后的不同重要场景对应的所述第一热点函数聚合结果,生成配置文件。5.根据权利要求2所述方法,其特征在于,所述电子设备基于所述配置文件中对应不同重要场景的第一热点函数的函数标识,对...

【专利技术属性】
技术研发人员:路来承
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

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

1