CN110941424B - 编译参数优化方法、装置及电子设备 - Google Patents

编译参数优化方法、装置及电子设备 Download PDF

Info

Publication number
CN110941424B
CN110941424B CN201911194975.1A CN201911194975A CN110941424B CN 110941424 B CN110941424 B CN 110941424B CN 201911194975 A CN201911194975 A CN 201911194975A CN 110941424 B CN110941424 B CN 110941424B
Authority
CN
China
Prior art keywords
compiling
parameter value
parameter
iteration
combination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911194975.1A
Other languages
English (en)
Other versions
CN110941424A (zh
Inventor
帅朝春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201911194975.1A priority Critical patent/CN110941424B/zh
Publication of CN110941424A publication Critical patent/CN110941424A/zh
Application granted granted Critical
Publication of CN110941424B publication Critical patent/CN110941424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请公开了一种编译参数优化方法、装置及电子设备,涉及计算机技术领域。其中,该方法包括:获取编译工具的目标参数类的多个参数值组合,根据前一次迭代的编译评估结果,从多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合;获取编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果;对多次迭代的编译评估结果进行比较,根据比较结果确定目标参数类对应的优化参数值组合。如此,可以以较小的代价更快地获得较优的编译参数值,从而使得编译工具基于该编译参数值编译的目标应用程序具有更高的运行效率。

Description

编译参数优化方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种编译参数优化方法、装置及电子设备。
背景技术
电子设备需要通过编译工具将应用程序的源码编译为机器代码,才能运行应用程序。编译工具带有许多编译参数,编译工具通常按照默认值对这些编译参数进行配置,导致编译后的应用程序在电子设备中的运行效率不佳。
然而,目前常用的编译参数调优方法所需的计算量非常大,调优代价高昂。
发明内容
鉴于上述问题,本申请提出了一种编译参数优化方法、装置及电子设备,用以改善上述问题。
第一方面,本申请实施例提供了一种编译参数优化方法,包括:获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值;根据前一次迭代的编译评估结果,从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合;获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果;对多次迭代的编译评估结果进行比较,根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合。
第二方面,本申请实施例提供了一种编译参数优化装置,包括:获取模块,用于获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值;选择模块,用于根据前一次迭代的编译评估结果,从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合;编译评估模块,用于获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果;优化模块,用于对多次迭代的编译评估结果进行比较,根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,其上存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
相对于现有技术,本申请提供的方案,对编译工具的编译参数进行分类调优,并且通过迭代的方式进行调优,调优过程中,根据前一次迭代的编译评估结果,选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合,从而可以更快地找到编译参数的优化参数值组合,减少了计算量,降低了调优代价。
此外,分类别对编译参数调优,减少了编译参数的参数值组合的数量,降低了进行编译测试的计算量,从而进一步降低了调优代价。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种适用于本申请实施例的应用场景示意图。
图2示出了根据本申请一个实施例的编译参数优化方法流程图。
图3示出了根据本申请另一个实施例的编译参数优化方法流程图。
图4示出了图3所示实施例的编译参数优化方法的另一流程图。
图5示出了图3所示实施例的编译参数优化方法的又一流程图。
图6是本申请实施例的用于执行根据本申请实施例的编译参数优化方法的电子设备的框图。
图7根据本申请实施例的编译参数优化装置的框图。
图8是本申请实施例的用于保存或者携带实现根据本申请实施例的编译参数优化方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
应用程序的源代码需要通过编译工具编译为机器代码,才能供电子设备运行。例如,电子设备可以通过编译器中的dex2oat程序将APK(Android application package,安卓应用程序安装包)中的dex文件优化为oat文件,再将oat文件编译为机器代码,以供电子设备运行。编译工具通常带有许多可调节的编译参数,每个编译参数可以配置成不同的值。相关技术中,通常是按照编译工具提供方给出的默认值来对编译工具的可调节参数进行配置,导致编译器对应用程序的优化效果非常有限,即,编译后的应用程序的运行效率不佳。
经研究发现,相关技术中,通常采用如下方式来优化编译参数:
一种是分别遍历每个编译参数的所有可能以确定最优值,这种方式工作量非常大,并且,基于分别优化各个编译参数得到的最优值对编译工具进行配置,并不一定能够改善编译工具对应用程序的优化效果。比如,可能存在这种情况:参数1和参数2均对应用程序的指标A产生影响,但两者需要一定的配合才能使指标A达到最优,而分别对参数1和参数2进行优化所得的两个优化值,可能无法使指标A达到最优,甚至可能无法达到优化指标A的效果。
另一种是:考虑每个编译参数的所有可能取值,对所有编译参数的取值进行随机组合,得到多个编译参数值的组合,分别基于每个组合进行编译测试,对编译测试的结果进行评估,再从所有的组合中选择选择评估结果最好的组合作为最优参数组合。然而,编译工具的编译参数非常多,每个编译参数通常具有多个取值,导致最终形成的编译参数值的组合非常多,对所有组合进行编译测试和评估计算量非常大,优化代价非常高。
发明人经过长期的研究,提出了一种编译参数优化方法、装置及电子设备,可以有效降低编译参数优化的计算量。下面将对该内容进行详细阐述。
请参照图1,图1为本申请实施例提供的应用场景示意图。其中,服务器100和用户终端200通过网络通信连接,服务器100可以是一个独立的服务器,也可以是相互通信的多个服务器100组成的集群中的一个,本申请实施例对此没有限制。
其中,用户终端200可以是任意具有通信功能和数据处理功能的电子设备,例如可以是,但不限于,智能手机、平板电脑、笔记本电脑等。
请参照图2,图2为本申请一实施例提供的一种编译参数优化方法的流程示意图,该方法可以应用于电子设备,该电子设备可以是图2所示的服务器100,也可以是其他具有足够计算力来运行本实施例方法、且可以与用户终端200通信的设备。下面以电子设备是服务器100为例,对该方法的步骤进行详细阐述。
步骤S110,获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值。
本实施例中,服务器100可以存储有编译工具的每个编译参数的相关信息,所述相关信息包括该编译参数是否为可调节编译参数、该编译参数的所有可选参数值以及该编译参数所属的参数类等。可以理解,各编译参数的相关信息也可以存储在可以与服务器100通信的其他设备中。换言之,相关信息的存储设备与本实施例方法的运行设备可以相同,也可以不同,本实施例对此没有限制。
编译工具的编译参数可以分为多个类别,以上述的dex2oat程序为例,其编译参数可以分为通用类、文件类、指令集类、编译器优化选项类、重定位信息类、调试信息类及运行参数类等。
其中,通用类对应的可调节编译参数包括线程数,即编译时使用多少个线程,其默认值通常为CPU核数。文件类对应的可调节编译参数可以有dex文件、dex文件的路径、包括classes.dex文件的压缩包的文件描述符、该压缩包的文件路径、输出的oat文件名、输出文件描述符、输出的oat文件的路径、输出的image(映像)文件名、预编译文件列表等。其中,dex文件的可选参数值可以是待编译的dex文件、待编译的jar文件或者待编译的apk文件。
指令集类对应的可调节编译参数可以有指定编译的指令集以及指令集参数,其可选参数值例如可以是arm64、mips、mips64、x86或者x86_64,指令集参数的参数值随指定编译的指令集的变化而变化。
编译器优化选项类对应的可调节编译参数例如可以有编译过滤器、巨型方法的指令数、大型方法的指令数、小型方法的指令数、微型方法的指令数、小型dex文件的方法上限、内联深度限制(inline-depth-limit)、内联最大代码单元数(inline-max-code-units)等,其中,编译过滤器的可选参数值可以有速度、时间、空间、平衡等,表示编译时优先考虑的因素。巨型方法的指令数表示当一个方法内包括的指令数超过多少时被当作巨型方法处理,默认值通常可以为10000。大型方法的指令数是指一个方法内的指令数超过多少时被当作大型方法来处理。小型方法的指令数是指一个方法内包括的指令数超过多少时被当作小型函数来处理。微型方法的指令数是指一个方法内包括的指令数超过多少时被当作小型方法来处理。
重定位信息类对应的可调节编译参数可以有:是否包含patch(补丁)信息,其中,包含patch信息时可以在不重编的情况下重定位。调试信息类对应的可调节编译参数例如可以有:是否生成调试信息。
运行参数类对应的可调节编译参数可以有:指定运行时参数、指定配置文件(profile)信息。其中,指定运行时参数可以包括初始堆大小、最大堆大小、详细输出等。指定的配置文件用于供编译器进行编译优化。
考虑到不同应用程序适用的编译参数的参数值可能不同,本实施例针对确定的应用程序进行编译参数调优。进一步地,考虑到同一类别的可调节编译参数对编译结果的影响维度基本一致,本实施例以参数类别为单位,对属于同一参数类的可调节编译参数进行调优。实施过程中,服务器100可以根据用户配置或者外部设备发送的触发请求来确定需要进行编译参数优化的应用程序(即,后文的目标应用程序),根据配置或实际计算力选择一个或多个参数类作为目标参数类,并分别对每个目标参数类的可调节编译参数进行优化,得到该目标参数类在编译工具对目标应用程序进行编译时的优化参数值组合。
对于所选的目标参数类,可以获取该目标参数类的多个参数值组合。本实施例的一种实施方式中,可以在选定目标参数类后,根据存储的相关信息获取属于该目标参数类的所有可调节编译参数及每个可调节编译参数的所有可选参数值,并对获取的各可调节编译参数的所有可选参数值进行排列组合,从而得到该目标参数类的多个参数值组合,所述多个参数值组合中的参数值不全相同。示例性地,假如可调节编译参数A、B、C均属于目标参数类M1,其中,可调节编译参数A具有可选参数值a1、a2、a3,可调节编译参数具有可选参数值b1、b2,可调节编译参数C具有可选参数值c1、c2,则对可调节编译参数A、B、C的可选参数值排列组合,可以得到
Figure BDA0002294459030000061
个参数值组合,分别为:[a1,b1,c1]、[a1,b2,c1]、[a1,b1,c2]、[a1,b2,c2]、[a2,b1,c1]、[a2,b2,c1]、[a2,b1,c2]、[a2,b2,c1]、[a3,b1,c1]、[a3,b2,c1]、[a3,b1,c2]、[a3,b2,c2]。
本实施例的另一种实施方式中,可以预先按照上述对目标参数类M1的各可调节编译参数的可选参数值进行排列组合的方式,形成各参数类的参数值组合,并将每个参数类的标识信息与该参数类的参数值组合关联后存储于服务器100中,或是存储于与服务器100通信的存储设备中。当服务器100选定目标参数类之后,再根据该目标参数类的标识从存储的参数值组合中选择该目标参数类的参数值组合。
步骤S120,根据前一次迭代的编译评估结果,从所述多个参数值组合中选择使编译评估结果符合预设优化条件的编译参数组合作为本次迭代的待测组合。
步骤S130,获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果。
本实施例中,服务器100获取目标参数类的多个参数值组合之后,可以通过迭代优化的方式对目标参数类的参数值组合进行编译测试,每次迭代过程中,对从目标参数类的参数值组合中选择的一个待测组合进行编译测试,即,在测试终端上按照待测组合对目标参数类的各个可调节编译参数进行配置,再通过配置后的编译工具来编译所确定的目标应用程序,得到本次迭代的编译结果,再对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果。
其中,首次迭代之后的每次迭代的待测组合可以按照步骤S120确定。详细地,服务器100可以根据前一次迭代的编译评估结果,从目标参数类的多个参数值组合中确定能够使编译评估结果符合所述预设优化条件的一个参数值组合,所确定的参数值组合即为本次迭代的待测组合,待测组合中的可选参数值与目标参数类包括的可调节编译参数一一对应。其中,预设优化条件例如可以是使编译评估结果至少优于当前已获得的编译评估结果的平均水平或者最差结果。
确定首次迭代的待测组合的方式可以有多种。例如,可以由用户根据先验知识(如,经验、统计数据、初步测试数据等)指定;又比如,可以从目标参数类的多个参数值组合中随机选取;再比如,可以将目标参数类的各个可调节编译参数的默认参数值组成的参数值组合作为首次迭代的待测组合,本实施例对此没有限制。
步骤S140,对多次迭代的编译评估结果进行比较,根据比较结果从所述多次迭代的待测组合中确定所述目标参数类别对应的优化参数值组合。
本实施例中,服务器100可以设置有迭代终止条件,例如可以在达到设定的迭代次数时停止迭代,又如可以在获得符合条件的编译评估结果时停止迭代,本实施例对此没有限制。
停止迭代后,可以得到多次迭代的待测组合及与所述多次迭代的编译评估结果,通过对所述多次迭代的编译评估结果进行比较,可以确定较优编译评估结果,并将较优的编译评估结果所对应的待测组合作为目标参数类在编译工具对目标应用程序进行编译时的优化参数值组合。其中,所确定的较优编译评估结果可以有一个或多个,可以根据配置决定。
通过图2所示流程,可以对编译工具的可调节编译参数进行分类调优,减少了可调节编译参数的参数值组合的数量,从而减少了编译测试的计算量,降低了调优代价。并且,通过迭代的方式进行调优,并根据前一次迭代的编译评估结果来选择可以获得更优的编译评估结果的参数值组合作为本次迭代的参数值组合,可以更加快速地找到目标参数类的优化参数值组合,进一步减少了计算量,降低了调优代价。
此外,由于编译参数优化是针对目标应用程序进行的,所得到的目标参数类的优化参数值组合与目标应用程序相匹配,用户终端的编译工具基于该优化参数值组合对目标应用程序进行编译,可以改善对目标应用程序的优化效果,提高目标应用程序在用户终端上的运行效率。
请参照图3,图3是本申请又一实施例提供的编译参数优化方法的流程示意图,下面以该方法应用于图1所示的服务器100为例,对该方法的步骤进行阐述。
步骤S210,获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值。
步骤S210的实现流程与前述的步骤S110类似,在此不再赘述。获得目标参数类的多个参数值组合之后,可以从多个参数值组合中选择待测组合进行迭代优化。其中,首次迭代的待测组合可以通过步骤S220-步骤S230来实现。
步骤S220,获取包括多条先验数据的数据集,每条先验数据包括所述目标参数类的一个参数值组合及所述编译工具基于该参数值组合对目标应用程序进行编译的编译评估结果,所述先验数据的数量少于所述参数值组合的数量。
实施过程中,在获取目标参数类的多个参数值组合之后,可以随机地从中选择部分参数值组合,控制所述编译工具基于所选的每个参数值组合对目标应用程序进行编译测试,从而得到对应的编译结果及编译评估结果,所选的每个参数值组合及其对应的编译评估结果组成一条先验数据,如此,可以得到多条先验数据,该多条先验数据组成所述数据集。所述数据集可以存储于服务器100或者是与服务器100通信的存储设备中。
服务器100可以将数据集中已经存在的参数值组合从所述多个参数值组合中删除,以避免对相同的参数值组合重复进行迭代处理。
步骤S230,根据所述数据集建立所述编译评估结果的先验概率模型,并获取所述先验概率模型的协方差矩阵,根据所述先验概率模型的协方差矩阵,建立待选择的参数值组合对应的编译评估结果的后验概率模型,根据所述后验概率模型建立采集函数,所述采集函数用于从所述目标参数类的参数值组合中选择使编译评估结果符合所述预设优化条件的参数值组合,获取所述采集函数选择的参数值组合作为首次迭代的待测组合。
步骤S240,获取编译工具基于首次迭代的待测组合对目标应用程序进行编译得到的首次迭代的编译结果,对首次迭代的编译结果进行评估,得到首次迭代的编译评估结果。
本实施例中,编译评估结果与待测组合之间存在某种映射关系,假定待测组合为X,编译评估结果为Y,则两者之间存在映射关系:Y=f(X)。可以理解,X为一个向量,其中包括目标参数类的各可调节编译参数的参数值。
所述映射关系通常服从一定的概率分布,可以参照该概率分布的基本模型,根据先验数据建立f(X)的先验概率模型,从而可以预测出f(X)的曲线的基本形状。再基于先验概率模型预测待确定的待测组合对应的编译评估结果的后验概率模型,从而根据后验概率模型建立采集函数,以选取使编译评估结果符合预设优化条件的参数值组合。为了便于计算,可以选择先验概率模型和后验概率模型表达形式一致的概率分布作为所述映射关系服从的分布,例如可以假设所述映射关系服从高斯分布,即:f(X)~GP(E(X),K(X,X’))。其中,GP表示高斯过程,E(X)表示均值,K(X,X’)表示协方差矩阵。
详细地,假定数据集中包括t-1(t为大于1的正整数)个先验数据,每条先验数据为(Xi,Yi),其中,1≤i≤t,且i为整数。则数据集可以表示为Dt-1={(X1:t-1,Y1:t-1)},其中,X1:t表示X1,X2,…,Xt-1;Y1:t-1表示Y1,Y2,…,Yt-1。为了便于计算,通常会对先验数据去中心化,则有f(X)~GP(0,K)。其中,基于数据集Dt-1,可以计算出当前的协方差矩阵K:
Figure BDA0002294459030000091
首次迭代的待测组合可以表示为Xt,在基于Xt进行编译测试并得到对应的编译评估结果Yt=f(Xt)之后,(Xt,Yt)也将成为先验数据被添加到数据集中,形成新的数据集Dt。基于待测组合Xt更新协方差矩阵K,首先令a=[k(Xt,X1),k(Xt,X2),…,k(Xt,Xt-1)],则更新的协方差矩阵K为:
Figure BDA0002294459030000101
得到更新后的协方差矩阵,即可基于先验概率模型估计出Yt(即,f(Xt))的后验概率模型P(f(Xt)|Xt,Dt-1),根据高斯分布的特点,在先验概率模型服从高斯分布的情况下,可以确定后验概率模型也服从高斯分布,从而有:
P(Yt|Xt,Dt-1)~N(μ,σ2),
其中,μ表示后验概率模型的均值,σ表示后验概率模型的方差,基于高斯分布的原理可知,μ=aTK-1[f(X1),f(X2),…,f(Xt-1)]T,σ2=k(Xt-1,Xt)-aTK-1a。
在计算出后验概率模型的参数μ和σ之后,可以基于后验概率模型建立采集函数,本实施例对采集函数的实现方式没有限定,只要可以选择出使得编译评估结果符合预设优化条件的目标参数类的参数值组合即可,其中,如上所述,预设优化条件可以是使编译评估结果至少优于已有编译评估结果的平均水平。
采集函数的具体形式与编译评估结果的评估方式相关。本实施例中,每次迭代过程中,服务器100可以在编译工具基于本次迭代的待测组合对目标应用程序进行编译之后,获取目标应用程序的编译时长、编译后数据所占的空间大小及所述目标应用程序的启动时长作为本次迭代的编译结果。然后,通过编译评估函数对本次迭代的编译结果中的编译时长、空间大小及启动时长进行计算,得到本次迭代的编译评估结果。
示例性地,所述编译评估函数可以是加权求和函数,具体可以表示为:0.8*Z1+0.15*Z2+0.05*Z3,其中,Z1表示编译时长、Z3表示空间大小、Z3表示启动时长。可以理解,前述的编译评估函数仅为示例,编译评估函数还可以对更多的指标进行加权求和,每个指标的权重不限于上述的权重,可以根据经验或统计数据重新设置。
基于上述的编译评估函数,一个例子中,根据后验概率模型建立采集函数的步骤可以通过如下流程实现:
计算后验概率模型的指定置信区间的下边界,建立用于确定所述下边界的相反数取得最大值时的参数值组合的函数,作为所述采集函数。
基于上述流程,可以得到首次迭代的采集函数:
Xt=argmaxαt(X)=argmax-[μt-1(X)-β1/2σt-1(X)2],
其中,argmaxαt(X)表示使αt(X)取得最大值时的参数值组合,即为采集参数选择的参数值组合Xt。μt-1(X)和σt-1(X)为基于数据集Dt-1预测的后验概率模型的均值和方差。其中,μt-1(X)-β1/2σt-1(X)2表示特定置信区间的下边界,β1/2可以决定该特定置信区间的置信度大小,例如,对于置信度为95%的置信区间,β1/2可以为1.96。当αt(X)取得最大值时,表示特定置信区间的下边界取得了最小值,即所述编译评估函数在特定置信区间内取得了最优的编译评估结果,从而可以将当前的参数值组合X作为首次迭代的待测组合。基于先验数据选出的参数值组合作为迭代优化的起点,可以获得更加优化的参数值组合。
首次迭代之后的每次迭代的待测组合,可以通过步骤S250-S260来实现。
步骤S250,将包括前一次迭代的待测组合及前一次迭代的编译评估结果的先验数据添加至所述先验数据集中,得到更新的先验数据集。
从首次迭代开始,每次迭代之后,将该次迭代的待测组合和编译评估结果(即,编译评估函数的函数值)构成一条先验数据,并将这条先验数据添加到数据集中。
步骤S260,根据更新的先验数据集对所述先验概率模型的协方差矩阵进行更新,根据更新的协方差矩阵对所述后验概率模型进行更新,得到本次迭代的后验概率模型,根据本次迭代的后验概率模型对所述采集函数进行更新,得到本次迭代的采集函数,获取本次迭代的采集函数选择的参数值组合作为本次迭代的待测组合。
步骤S270,获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果。
步骤S260的详细实现流程与基于先验数据集确定首次迭代的待测组合的流程类似。详细地,步骤S260中使用的数据集是添加了前一次迭代的待测组合和编译评估结果组成的先验数据的数据集。在获得更新的数据集之后,重新基于更新的数据集计算先验概率模型的协方差矩阵,再基于需要确定的本次迭代的待测组合更新协方差矩阵,即,将需要确定的本次迭代的待测组合作为未知数引入到协方差矩阵中,然后,再基于协方差矩阵更新后验概率模型,对应地,后验概率模型的均值和方差也将发生改变,采集函数也将发生改变。改变后的采集函数即为本次迭代的采集函数。
通过本次迭代的采集函数选择的参数值组合即为本次迭代的待测组合。再控制编译工具基于本次迭代的待测组合对目标应用程序进行编译,并记录编译时长、编译后数据所占的空间大小以及编译后的目标应用程序的启动时长,作为本次迭代的编译结果,再对记录的编译时长、空间大小及启动时长加权求和,即可得到本次迭代的编译评估结果。
按照步骤S260进行多次迭代,直至满足迭代终止条件,例如当迭代次数达到预设次数时,停止迭代。所述预设次数可以根据实际情况进行设置,比如可以为40-60次,例如50次。
步骤S280,比较多次迭代的编译评估结果的大小。
步骤S290,根据所述多次迭代的编译评估结果的大小关系,从所述多次迭代的编译评估结果中确定最大的预设数量个编译评估结果,从所述多次迭代的待测组合中,选择与所确定的编译评估结果对应的待测组合作为所述目标参数类对应的优化参数值组合。
停止迭代后,可以获得多次迭代的编译评估结果,并对获得的编译评估结果的大小进行比较,从中选出最大的预设数量个编译评估结果,所选的编译评估结果对应的待测组合即为编译工具编译目标应用程序所需的目标参数类的优化参数值组合。其中,所述预设数量可以灵活设定,比如可以为1-3,例如可以为2。
通过本实施例的方案,可以减少编译测试的计算量,降低调优代价,并且可以加快调优速度,更快地找到编译工具编译目标应用程序时各参数类的优化参数值组合,使得基于该优化参数值组合编译的目标应用程序的运行效率更高、启动更快、占据空间更小。
可选地,在一种实施方式中,在确定目标参数类的优化参数值组合之后,本实施例提供的编译参数优化方法还可以包括以下步骤:
记录目标应用程序的程序标识、所述目标参数类与所述优化参数值组合的对应关系。
其中,所述对应关系可以是包括目标应用程序的程序标识、目标参数类及所述优化参数值组合的数据记录,其中,目标参数类包括的可调节编译参数与优化参数值组合中的参数值一一对应。
用户终端200可以基于上述对应关系来改善编译工具对目标应用程序的编译优化效果,对应地,本实施例提供的方法还可以包括图4所示步骤:
步骤S410,接收用户终端200发送的查询请求,所述查询请求包括待编译应用程序的程序标识。
用户终端200可以在需要编译应用程序时,生成一查询请求,并将待编译应用程序的程序标识添加到该查询请求中,再将添加程序标识的查询请求发送给服务器100。其中,所述程序标识例如可以为程序名称。
步骤S420,根据所述对应关系,查找与所述查询请求中的程序标识对应的目标参数类及该目标参数类的优化参数值组合。
服务器100可以识别接收到的查询请求,并从中提取出程序标识,并以该程序标识为索引,查找包含该程序标识的目标对应关系。可以理解,服务器100查找到的目标对应关系可以为一个或多个,根据服务器100优化的参数类的数量而定。服务器100从查找到的每个目标对应关系中获取程序标识对应的目标参数类及该目标参数类的优化参数值组合。
步骤S430,将查找到的目标参数类及优化参数值组合发送给所述用户终端200,使所述用户终端按照该优化参数值组合,对所述编译工具的该目标参数类的可调节编译参数进行配置,并通过配置后的所述编译工具编译所述待编译应用程序。
服务器100将获取的每个目标参数类及该目标参数类的优化参数值组合发送给用户终端200,用户终端200按照接收的每个优化参数值组合,对编译工具中与该优化参数值组合对应的目标参数类的每个可调节编译参数,再通过配置之后的编译工具来编译待编译应用程序,可以提高目标应用程序的运行效率、降低编译后数据占用空间、减少启动时间。
另一种实施方式中,步骤S240和步骤S270中,编译工具均是位于配置有预设编译环境参数的第一用户终端,对应地,步骤S240包括:
确定配置有预设编译环境参数的第一用户终端,获取所述第一用户终端中的所述编译工具基于本次迭代的待测组合对所述目标应用程序进行编译得到的本次迭代的编译结果。
对应地,步骤S270中,服务器100也是从该第一用户终端获取本次迭代的编译结果。在此情况下,在确定目标参数类的优化参数值组合之后,本实施例提供的编译参数优化方法还可以包括以下步骤:
记录所述预设编译环境参数、所述目标应用程序的程序标识、所述目标参数类及所述优化参数值组合的对应关系。
其中,所述对应关系可以是包括预设编译环境参数、目标应用程序的程序标识、目标参数类及优化参数值组合的数据记录,其中,目标参数类包括的可调节编译参数与优化参数值组合中的参数值一一对应。基于这一对应关系,用户终端200可以改善编译工具对目标应用程序的编译优化效果。对应地,本实施例提供的方法还可以包括图5所示步骤,详细描述如下。
步骤S510,接收第二用户终端发送的查询请求,所述查询请求包括待编译应用程序的程序标识及所述第二用户终端的编译环境参数。
可以理解,本实施例中,第一用户终端是指进行编译测试的终端,可以是真实的用户终端,也可以是模拟的用户终端。第二用户终端可以为任意用户终端。
第二用户终端在需要编译任一应用程序时,生成一查询请求,并将待编译应用程序的程序标识及第二用户终端当前的编译环境参数添加到查询请求中,再将添加程序标识和编译环境参数的查询请求发送给服务器100。
步骤S520,根据所述对应关系,查找与所述查询请求中的程序标识及编译环境参数对应的目标参数类及该目标参数类的优化参数值组合。
服务器100接收查询请求,从中识别并提取出程序标识和编译环境参数,并以提取的程序标识和编译环境参数为索引,从存储的对应关系中查找包括提取的程序标识和编译环境参数的目标对应关系,再从查找到的每个目标对应关系中获取目标参数类及该目标参数类的优化参数值组合。
步骤S530,向所述第二用户终端发送查找到的目标参数类及优化参数值组合,使所述第二用户终端根据该优化参数值组合,对所述编译工具的该目标参数类的可调节编译参数进行配置,并通过配置后的所述编译工具编译所述待编译应用程序。
服务器100将获取的每个目标参数类及该目标参数类的优化参数值组合发送给第二用户终端。
第二用户终端按照接收的每个优化参数值组合对本终端的所述编译工具中,与该优化参数值组合对应的目标参数类进行配置,再采用配置后的编译工具来编译待编译应用程序,如此,可以使得待编译应用程序的启动时间更短、编译后数据占据空间更小、编译时长更短。
请参照图6,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备600例如可以是图1中的服务器100,也可以是其他具有相同计算力且具有通信功能的设备。本申请中的电子设备600可以包括一个或多个如下部件:处理器610、存储器620、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器620中并被配置为由一个或多个处理器610执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器610可以包括一个或者多个处理核。处理器610利用各种接口和线路连接整个电子设备600内的各个部分,通过运行或执行存储在存储器620内的指令、程序、代码集或指令集,以及调用存储在存储器620内的数据,执行电子设备600的各种功能和处理数据。可选地,处理器610可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器610可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器610中,单独通过一块通信芯片进行实现。
存储器620可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器620可用于存储指令、程序、代码、代码集或指令集。存储器620可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备600在使用中所创建的数据(比如先验数据、对应关系)等。
可以理解,图6所示仅为电子设备的示意结构,本申请实施例的电子设备还可以包括比图6所示更多、更少或者完全不同的配置。
请参阅图7,其示出了本申请实施例提供的一种编译参数优化装置的结构框图。该装置700可以包括:获取模块710、选择模块720、编译评估模块730以及优化模块740。
其中,获取模块710用于获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值。
选择模块720用于根据前一次迭代的编译评估结果,从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合。
可选地,所述选择模块720还可以用于:在根据前一次迭代的编译评估结果,从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合之前,根据所述数据集建立所述编译评估结果的先验概率模型,并获取所述先验概率模型的协方差矩阵;根据所述先验概率模型的协方差矩阵,建立待选择的参数值组合对应的编译评估结果的后验概率模型;根据所述后验概率模型建立采集函数,所述采集函数用于从所述目标参数类的参数值组合中选择使编译评估结果符合所述预设优化条件的参数值组合;获取所述采集函数选择的参数值组合作为首次迭代的待测组合。
可选地,所述选择模块720根据前一次迭代的编译评估结果,从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组的方式可以是:将包括前一次迭代的待测组合及前一次迭代的编译评估结果的先验数据添加至所述先验数据集中,得到更新的先验数据集;根据更新的先验数据集对所述先验概率模型的协方差矩阵进行更新;根据更新的协方差矩阵对所述后验概率模型进行更新,得到本次迭代的后验概率模型;根据本次迭代的后验概率模型对所述采集函数进行更新,得到本次迭代的采集函数;获取本次迭代的采集函数选择的参数值组合作为本次迭代的待测组合。
编译评估模块730用于获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果。
可选地,本申请实施例中,编译评估模块730可以通过如下方式获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果:
获取所述目标应用程序的编译时长、编译后数据所占的空间大小及所述目标应用程序的启动时长作为本次迭代的编译结果。
对应地,编译评估模块730可以通过如下方式对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果:
通过编译评估函数对本次迭代的编译结果中的编译时长、空间大小及启动时长进行计算,得到本次迭代的编译评估结果。
其中,所述编译评估函数可以是加权求和函数,在此情况下,所述选择模块720根据所述后验概率模型建立采集函数的方式可以是:
计算所述后验概率模型的指定置信区间的下边界;建立用于确定所述下边界的相反数取得最大值时的参数值组合的函数,作为所述采集函数。
优化模块740用于对多次迭代的编译评估结果进行比较,根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合。
其中,优化模块740具体可以用于:比较多次迭代的编译评估结果的大小;根据所述多次迭代的编译评估结果的大小关系,从所述多次迭代的编译评估结果中确定最大的预设数量个编译评估结果;从所述多次迭代的待测组合中,选择与所确定的编译评估结果对应的待测组合作为所述目标参数类对应的优化参数值组合。
可选地,本申请实施例提供的装置700还可以包括存储模块和响应模块。
一种实施方式中,存储模块可以用于:记录所述目标应用程序的程序标识、所述目标参数类及所述优化参数值组合的对应关系。
对应地,响应模块可以用于:接收用户终端200发送的查询请求,所述查询请求包括待编译应用程序的程序标识;根据所述对应关系,查找与所述查询请求中的程序标识对应的目标参数类及该目标参数类的优化参数值组合;将查找到的目标参数类及优化参数值组合发送给所述用户终端200,使所述用户终端按照该优化参数值组合,对所述编译工具的该目标参数类的可调节编译参数进行配置,并通过配置后的所述编译工具编译所述待编译应用程序。
另一种实施方式中,编译评估模块730可以通过如下方式获取所述编译工具基于本次迭代的待测组合对所述目标应用程序进行编译得到的本次迭代的编译结果:
确定配置有预设编译环境参数的第一用户终端;获取所述第一用户终端中的所述编译工具基于本次迭代的待测组合对所述目标应用程序进行编译得到的本次迭代的编译结果。
在此情况下,存储模块可以用于:记录所述预设编译环境参数、所述目标应用程序的程序标识、所述目标参数类及所述优化参数值组合的对应关系。对应地,响应模块可以用于:接收第二用户终端发送的查询请求,所述查询请求包括待编译应用程序的程序标识及所述第二用户终端的编译环境参数;根据所述对应关系,查找与所述查询请求中的程序标识及编译环境参数对应的目标参数类及该目标参数类的优化参数值组合;向所述第二用户终端发送查找到的目标参数类及优化参数值组合,使所述第二用户终端根据该优化参数值组合,对所述编译工具的该目标参数类的可调节编译参数进行配置,并通过配置后的所述编译工具编译所述待编译应用程序。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种编译参数优化方法,其特征在于,包括:
获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值;
根据前一次迭代的编译评估结果,通过采集函数从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合,所述采集函数通过后验概率模型确定,所述后验概率模型通过包括多条先验数据的数据集确定;
获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果;
对多次迭代的编译评估结果进行比较,根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合。
2.根据权利要求1所述的方法,其特征在于,在所述根据前一次迭代的编译评估结果,通过采集函数从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合之前,还包括:
获取包括多条先验数据的数据集,每条先验数据包括所述目标参数类的一个参数值组合及所述编译工具基于该参数值组合对目标应用程序进行编译的编译评估结果,所述先验数据的数量少于所述参数值组合的数量;
根据所述数据集建立所述编译评估结果的先验概率模型,并获取所述先验概率模型的协方差矩阵;
根据所述先验概率模型的协方差矩阵,建立待选择的参数值组合对应的编译评估结果的后验概率模型;
根据所述后验概率模型建立采集函数,所述采集函数用于从所述目标参数类的参数值组合中选择使编译评估结果符合所述预设优化条件的参数值组合;
获取所述采集函数选择的参数值组合作为首次迭代的待测组合。
3.根据权利要求2所述的方法,其特征在于,所述根据前一次迭代的编译评估结果,通过采集函数从所述多个参数值组合中选择使编译评估结果符合预设优化条件的编译参数组合作为本次迭代的待测组合,包括:
将包括前一次迭代的待测组合及前一次迭代的编译评估结果的先验数据添加至先验数据集中,得到更新的先验数据集;
根据更新的先验数据集对所述先验概率模型的协方差矩阵进行更新;
根据更新的协方差矩阵对所述后验概率模型进行更新,得到本次迭代的后验概率模型;
根据本次迭代的后验概率模型对所述采集函数进行更新,得到本次迭代的采集函数;
获取本次迭代的采集函数选择的参数值组合作为本次迭代的待测组合。
4.根据权利要求2或3所述的方法,其特征在于,所述获取所述编译工具基于本次迭代的待测组合对所述目标应用程序进行编译得到的本次迭代的编译结果,包括:
获取所述目标应用程序的编译时长、编译后数据所占的空间大小及所述目标应用程序的启动时长作为本次迭代的编译结果;
所述对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果,包括:
通过编译评估函数对本次迭代的编译结果中的编译时长、空间大小及启动时长进行计算,得到本次迭代的编译评估结果。
5.根据权利要求4所述的方法,其特征在于,所述编译评估函数为加权求和函数;所述根据所述后验概率模型建立采集函数,包括:
计算所述后验概率模型的指定置信区间的下边界;
建立用于确定所述下边界的相反数取得最大值时的参数值组合的函数,作为所述采集函数。
6.根据权利要求5所述的方法,其特征在于,所述对多次迭代的编译评估结果进行比较,包括:
比较多次迭代的编译评估结果的大小;
所述根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合,包括:
根据所述多次迭代的编译评估结果的大小关系,从所述多次迭代的编译评估结果中确定最大的预设数量个编译评估结果;
从所述多次迭代的待测组合中,选择与所确定的编译评估结果对应的待测组合作为所述目标参数类对应的优化参数值组合。
7.根据权利要求1-3中任意一项所述的方法,其特征在于,应用于服务器,在所述根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合之后,还包括:
记录所述目标应用程序的程序标识、所述目标参数类及所述优化参数值组合的对应关系;
接收用户终端发送的查询请求,所述查询请求包括待编译应用程序的程序标识;
根据所述对应关系,查找与所述查询请求中的程序标识对应的目标参数类及该目标参数类的优化参数值组合;
将查找到的目标参数类及优化参数值组合发送给所述用户终端,使所述用户终端按照该优化参数值组合,对所述编译工具的该目标参数类的可调节编译参数进行配置,并通过配置后的所述编译工具编译所述待编译应用程序。
8.根据权利要求1-3中任意一项所述的方法,其特征在于,所述获取所述编译工具基于本次迭代的待测组合对所述目标应用程序进行编译得到的本次迭代的编译结果,包括:
确定配置有预设编译环境参数的第一用户终端;
获取所述第一用户终端中的所述编译工具基于本次迭代的待测组合对所述目标应用程序进行编译得到的本次迭代的编译结果;
在所述根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合之后,所述方法还包括:
记录所述预设编译环境参数、所述目标应用程序的程序标识、所述目标参数类及所述优化参数值组合的对应关系;
接收第二用户终端发送的查询请求,所述查询请求包括待编译应用程序的程序标识及所述第二用户终端的编译环境参数;
根据所述对应关系,查找与所述查询请求中的程序标识及编译环境参数对应的目标参数类及该目标参数类的优化参数值组合;
向所述第二用户终端发送查找到的目标参数类及优化参数值组合,使所述第二用户终端根据该优化参数值组合,对所述编译工具的该目标参数类的可调节编译参数进行配置,并通过配置后的所述编译工具编译所述待编译应用程序。
9.一种编译参数优化装置,其特征在于,包括:
获取模块,用于获取编译工具的目标参数类的多个参数值组合,所述目标参数类包括所述编译工具的至少一个可调节编译参数,所述参数值组合包括所述目标参数类中每个可调节编译参数的一个可选参数值;
选择模块,用于根据前一次迭代的编译评估结果,通过采集函数从所述多个参数值组合中选择使编译评估结果符合预设优化条件的参数值组合作为本次迭代的待测组合,所述采集函数通过后验概率模型确定,所述后验概率模型通过包括多条先验数据的数据集确定;
编译评估模块,用于获取所述编译工具基于本次迭代的待测组合对目标应用程序进行编译得到的本次迭代的编译结果,对本次迭代的编译结果进行评估,得到本次迭代的编译评估结果;
优化模块,用于对多次迭代的编译评估结果进行比较,根据比较结果从所述多次迭代的待测组合中确定所述目标参数类对应的优化参数值组合。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-8中任意一项所述的方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8中任意一项所述的方法。
CN201911194975.1A 2019-11-28 2019-11-28 编译参数优化方法、装置及电子设备 Active CN110941424B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911194975.1A CN110941424B (zh) 2019-11-28 2019-11-28 编译参数优化方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911194975.1A CN110941424B (zh) 2019-11-28 2019-11-28 编译参数优化方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN110941424A CN110941424A (zh) 2020-03-31
CN110941424B true CN110941424B (zh) 2023-06-13

Family

ID=69908570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911194975.1A Active CN110941424B (zh) 2019-11-28 2019-11-28 编译参数优化方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN110941424B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580827B (zh) * 2020-04-30 2021-09-28 腾讯科技(深圳)有限公司 机器学习模型的编译优化方法和装置
CN112799649B (zh) * 2020-06-15 2023-09-12 中兴通讯股份有限公司 代码构建方法、装置、设备和存储介质
CN112540767B (zh) * 2020-12-25 2023-07-25 北京百度网讯科技有限公司 程序代码的生成方法、装置、电子设备及存储介质
CN113326046B (zh) * 2021-05-26 2023-09-26 网易(杭州)网络有限公司 获取编译时长的方法和装置
CN113485709B (zh) * 2021-06-15 2022-10-14 荣耀终端有限公司 应用优化方法、装置以及电子设备
CN114331917B (zh) * 2022-03-08 2022-06-21 深圳比特微电子科技有限公司 一种设备调试的方法和控制器
CN114676026B (zh) * 2022-03-28 2023-03-10 明阳产业技术研究院(沈阳)有限公司 一种处理器性能测试方法、装置、设备和介质
CN116521176B (zh) * 2023-05-06 2023-12-29 东莞理工学院 一种编译优化选项优化方法、装置、智能终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819652B2 (en) * 2010-07-30 2014-08-26 General Electric Company System and method for parametric system evaluation
CN102622260B (zh) * 2012-02-27 2014-12-10 中国科学院计算技术研究所 一种在线迭代编译的优化方法和优化系统
CN109960507B (zh) * 2017-12-14 2021-06-08 Oppo广东移动通信有限公司 编译优化方法、装置、存储介质、智能终端及服务器

Also Published As

Publication number Publication date
CN110941424A (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
CN110941424B (zh) 编译参数优化方法、装置及电子设备
JP7343568B2 (ja) 機械学習のためのハイパーパラメータの識別および適用
US8572007B1 (en) Systems and methods for classifying unknown files/spam based on a user actions, a file's prevalence within a user community, and a predetermined prevalence threshold
US20210271634A1 (en) Fuzzy hash algorithms to calculate file similarity
CN111061483B (zh) 编译优化方法、装置及电子设备
CN114723033B (zh) 数据处理方法、装置、ai芯片、电子设备及存储介质
EP3320442A1 (en) Staged application rollout
CN111260220B (zh) 群控设备识别方法、装置、电子设备和存储介质
US11436188B2 (en) Resource optimization and update method, server, and device
CN106844550B (zh) 一种虚拟化平台操作推荐方法及装置
CN108288208A (zh) 基于图像内容的展示对象确定方法、装置、介质及设备
CN110058679A (zh) 一种马达的激励信号搜索方法及电子设备
CN109933515B (zh) 一种回归测试用例集的优化方法和自动优化装置
US11782947B2 (en) Apparatus for recommending feature and method for recommending feature using the same
Folino et al. Automatic offloading of mobile applications into the cloud by means of genetic programming
CN116453209A (zh) 模型训练方法、行为分类方法、电子设备及存储介质
CN111767419A (zh) 图片搜索方法、装置、设备及计算机可读存储介质
CN116366603A (zh) 一种活跃IPv6地址的确定方法及装置
CN114492366A (zh) 二进制文件的分类方法、计算设备及存储介质
CN113051126A (zh) 画像构建方法、装置、设备及存储介质
WO2021135988A1 (zh) 热点代码处理方法、请求方法、装置及电子设备
CN112989342B (zh) 恶意软件检测网络优化方法、装置、电子设备及存储介质
EP3842927A1 (en) Methods, systems, articles of manufacture and apparatus to select data structures
CN113672783B (zh) 特征处理方法、模型训练方法及媒体资源处理方法
CN116522002B (zh) 一种基于机器学习的通航服务系统的容器推荐方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant