CN112559088A - 配置文件的优化方法、装置、服务器以及存储介质 - Google Patents
配置文件的优化方法、装置、服务器以及存储介质 Download PDFInfo
- Publication number
- CN112559088A CN112559088A CN202011595387.1A CN202011595387A CN112559088A CN 112559088 A CN112559088 A CN 112559088A CN 202011595387 A CN202011595387 A CN 202011595387A CN 112559088 A CN112559088 A CN 112559088A
- Authority
- CN
- China
- Prior art keywords
- application program
- configuration file
- compiling unit
- compiling
- version application
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000005457 optimization Methods 0.000 title description 15
- 238000009434 installation Methods 0.000 claims abstract description 112
- 230000006870 function Effects 0.000 claims description 14
- 230000000694 effects Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011900 installation process Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration 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)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种配置文件的优化方法、装置、服务器以及存储介质,涉及计算机技术领域。该方法包括:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件。本申请通过新老版本的配置文件迁移,可以实现新版本在首次安装时也能起到提前优化的效果,减少应用程序的运行卡顿,提升用户体验。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种配置文件的优化方法、装置、服务器以及存储介质。
背景技术
电子设备,例如平板电脑、智能终端等,已经成为人们日常生活中最常用的消费型电子产品之一。人们通常于电子设备中安装各种应用程序,以满足不同的需求。为了提高电子设备对应用程序的执行效率,通常需要利用编译器的代码优化功能对应用程序进行编译优化。比如,从应用程序对应的多个编译单元中确定热点编译单元,编译器可以根据编译优化功能将热点编译单元的程序代码转换成机器代码,从而避免在应用程序运行时对热点编译单元进行即时(just-in-time)编译。
但是,现有的编译优化功能通常需要在应用程序运行一段时间才能确定热点编译单元,不够及时,从而造成应用程序运行卡顿的问题。
发明内容
鉴于上述问题,本申请提出了一种配置文件的优化方法、装置、服务器以及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种配置文件的优化方法,应用于服务器,所述方法包括:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本;从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息;基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元;基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
第二方面,本申请实施例提供了一种配置文件的优化装置,应用于服务器,所述装置包括:第一配置文件获取模块,用于获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本;标识信息获取模块,用于从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息;目标编译单元查找模块,用于基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元;第二配置文件获取模块,用于基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
第三方面,本申请实施例提供了一种服务器,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请实施例提供的配置文件的优化方法、装置、服务器以及存储介质,获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件,从而通过新老版本的配置文件迁移,可以实现新版本在首次安装时也能起到提前优化的效果,减少应用程序的运行卡顿,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可用于本申请实施例提供的配置文件的优化方法的一种应用环境示意图;
图2示出了可用于本申请实施例提供的配置文件的优化方法的又一种应用环境示意图;
图3所示了本申请一个实施例提供的配置文件的优化方法的流程示意图;
图4所示了本申请又一个实施例提供的配置文件的优化方法的流程示意图;
图5所示了本申请再一个实施例提供的配置文件的优化方法的流程示意图;
图6所示了本申请另一个实施例提供的配置文件的优化方法的流程示意图;
图7所示了本申请又再一个实施例提供的配置文件的优化方法的流程示意图;
图8示出了本申请的图7所示的配置文件的优化方法的步骤S520的流程示意图;
图9示出了本申请实施例提供的配置文件的优化装置的模块框图;
图10示出了本申请实施例用于执行根据本申请实施例的配置文件的优化方法的服务器的框图;
图11示出了本申请实施例的用于保存或者携带实现根据本申请实施例的开机异常处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在Android系统的开发中,目前使用最多的编程语言是Java,即便不是Java,也是JVM语言,Android工程中的java源文件经过编译生成Class文件,最后被打包成dex字节码文件,再通过虚拟机Dalvik或安卓运行时Art将dex字节码翻译成机器码,即时编译JIT和运行前编译AOT是虚拟机为了提高运行效率等采用的不同的编译策略。
Android系统初期,每次程序运行时,Dalvik会将dex翻译为机器码交由系统调用,然后再交由底层系统处理,效率很低。在Android 2.2中加入了JIT编译器,每当遇到一个新类,JIT编译器会对这个类进行即时编译,变为精简原生型指令码,下次再遇到相同逻辑时,速度变快。因为JIT编译器只编译了一部分代码,它具有更小的内存占用和设备物理空间占用,但边解释边执行,效率仍然低下。
在Android 5.0后,Art正式替代了Dalvik。Art使用的是AOT的编译方式。即在应用的安装过程中,就将所有的dex字节码翻译成机器码存储在电子设备的存储空间中,即会启动dex2oat过程将dex预编译成ELF文件,dex字节码的解释过程已经完成使得应用程序的运行速度变快,应用程序的启动时间进一步减少。但安装期间字节码的翻译时间过久使得安装过程很长,此外翻译得到的机器码也占用了更大的机身存储空间。
在Android 7.0上,JIT编译器被再次采用,即采用JIT+AOT的编译模式。应用程序在安装的时候dex不会再被编译,当应用程序运行时,dex文件先通过解释器直接被执行,热点编译单元会被识别并被JIT编译后存储在JIT code cache中并生成配置文件(profile文件)以记录热点编译单元的索引。而当手机进入idle或charging状态时,系统会扫描应用程序目录下的配置文件文件并执行AOT过程进行编译。目前绝大部分终端厂商采用的都是ART+Interpreter+JIT+AOT混合编译模式,在此编译模式下,应用程序的安装速度得到显著提升,而随着应用程序的使用时常越来越久,应用程序的热点编译单元的数量会越来越多,应用程序的性能也会越来越好。
其中,配置文件中记录的是热点编译单元的索引,是跟应用程序的安装包版本一一匹配的。在应用程序的安装包的不同版本间,可能会因为兼容的问题,索引有变化,即同一个编译单元,在不同版本间,索引有变化,或者在旧版本中有的编译单元,在新版本中被移除了,这样,就不能保证旧版本的配置文件,在新版本可以继续使用(再加上checksum的校验,一般就不能用)。另外,由于热点编译单元需要在应用程序运行的过程中确定,即,热点编译单元需要在应用程序运行一段时间后再确定,从而造成新版本的应用程序在首次或初期运行时没有对应的热点编译单元,则只能采用即时编译而无法采用运行前编译,进而造成应用程序运行卡顿的问题。
针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的配置文件的优化方法、装置、服务器以及存储介质,通过新老版本的配置文件迁移,可以实现新版本在首次安装时也能起到提前优化的效果,减少应用程序的运行卡顿,提升用户体验。其中,具体的配置文件的优化方法在后续的实施例中进行详细的说明。
下面将针对可用于本申请实施例提供的热点代码确定方法的环境示意图进行说明。
请参阅图1,图1示出了可用于本申请实施例提供的配置文件的优化方法的一种应用场景示意图,该应用场景包括:电子设备200以及服务器100。其中,电子设备200与服务器100通过网络进行通信。电子设备200可以与服务器100进行数据交互,以从服务器100获取应用程序的安装包、配置文件等,或者发送配置信息至服务器100。
请参阅图2,图2示出了可用于本申请实施例提供的配置文件的优化方法的又一种应用场景示意图,电子设备200可以包括第一电子设备210和第二电子设备220,当然,电子设备还可以包括第三电子设备、第四电子设备、第五电子设备……第N电子设备等,在此不做限定。即该应用场景包括:第一电子设备210、第二电子设备220以及服务器100。其中,第一电子设备210与服务器100之间进行数据交互,第二电子设备220与服务器100之间进行数据交互。服务器100可以接收第一电子设备210上传的配置信息,并获取第二电子设备220上传的配置信息,并利用大数据提高最终生成的配置文件的准确性。
在一些实施方式中,上述的电子设备200可以包括智能手机、平板电脑、电子书、智能手表等设备;服务器100可以包括传统服务器、云服务器等,在此不做限定。
请参阅图3,图3示出了本申请一个实施例提供的配置文件的优化方法的流程示意图。所述配置文件的优化方法用于通过新老版本的配置文件迁移,可以实现新版本在首次安装时也能起到提前优化的效果,减少应用程序的运行卡顿,提升用户体验。在具体的实施例中,所述配置文件的优化方法应用于如图9所示的配置文件的优化装置300以及配置有配置文件的优化装置300的服务器100(图10)。下面将以服务器为例,说明本实施例的具体靠流程,当然,可以理解的,本实施例所应用的服务器可以为云服务器,也可以为传统服务器等,在此不做限定。下面将针对图3所示的流程进行详细的阐述,所示配置文件的优化方法具体可以包括以下步骤:
步骤S110:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本。
其中,在本实施例中,新版本应用程序和旧版本应用程序是同一个应用程序的不同版本。例如,新版本应用程序为应用程序A的V2版本,旧版本应用程序为应用程序A的V1版本,即,新版本应用程序和旧版本应用程序是应用程序A的不同版本,且,新版本应用程序由旧版本应用程序经过升级或更新等处理后获得。
在一些实施方式中,服务器可以获取新版本应用程序的安装包。服务器可以预先获取并存储有新版本应用程序的安装包,则可以直接从服务器的本地获取新版本应用程序的安装包。或者,服务器也可以与用户终端连接,并获取用户终端上传的新版本应用程序的安装包,其中,用户终端可以对应应用程序开发人员。
在一些实施方式中,服务器可以获取旧版本应用程序对应的配置文件,将该旧版本应用程序对应的配置文件作为第一配置文件。其中,服务器可以预先存储有旧版本应用程序对应的配置文件,示例性地,服务器可以预先存储有包含热点编译单元的标识信息、属性信息、索引等的配置文件,则可以从服务器的本地获取旧版本应用程序对应的配置文件。作为一种方式,该旧版本应用程序的数量为一个或多个,其中,当确定的旧版本应用程序的数量为一个时,则该旧版本应用程序与新版本应用程序可以为相邻版本的应用程序;当确定的旧版本应用程序的数量为多个时,则可以获取多个旧版本应用程序中的每个旧版本应用程序对应的配置文件,再根据每个旧版本应用程序对应的配置文件,生成第一配置文件,例如,可以将多个旧版本应用程序对应的配置文件进行合并处理,生成第一配置文件。
步骤S120:从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息。
在一些实施方式中,服务器在获取第一配置文件后,可以对第一配置文件进行解析,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息。其中,编译单元可以理解为应用程序的源码中的函数、方法(method)或者类(class),热点编译单元可以理解为应用程序的源码中调用次数超过预设次数的函数、方法或者类等。配置文件通常为二进制文件,其中包含应用程序源码中热点编译单元的标识信息、应用程序源码中热点编译单元的索引等,标识信息例如可以包括身份(Identity,ID)信息,其中,该标识信息是编译单元的定义信息,可以认为是编译单元的唯一名称,只要编译单元不被修改,即版本兼容,这个名称是不会改变的。
步骤S130:基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元。
其中,新版本应用程序和旧版本应用程序虽然存在区别,但两者的差异不会太大,对应地,新版本应用程序对应的热点编译单元和旧版本应用程序对应的热点编译单元的差异也不会太大。因此,在获取旧版本应用程序对应的热点编译单元的标识信息后,本实施例根据其标识信息从新版本应用程序的安装包的多个编译单元中查找是否存在匹配的编译单元,如果查找到,说明新版本应用程序的安装包中存在与旧版本应用程序对应的热点编译单元类似的编译单元,则可以将该类似的编译单元确定为新版本应用程序对应的热点编译单元,记为目标编译单元,如果没有查找到,说明新版本应用程序中移除或者修改该编译单元,则不会将该编译单元记为目标编译单元。
例如,新版本应用程序V2对应新版本安装包Y2,旧版本应用程序V1对应旧版本安装包Y1。则服务器可以在获取新版本应用程序V2对应新版本安装包Y2之后,检测是否可以获取到新版本应用程序V2对应的新版本配置文件,如果否,可以旧版本应用程序V1的旧版本配置文件,其中,旧版本配置文件记载了旧版本应用程序V1的旧版本热点编译单元的ID,例如旧版本热点编译单元的ID包括1、2,如果根据ID 1没有从新版本安装包Y2中查找到匹配的编译单元,根据ID 2从新版本安装包Y2中查找到匹配的编译单元,则可以确定查找到的该编译单元是与旧版本热点编译单元2匹配的编译单元,则将该匹配的编译单元确定为目标编译单元。
步骤S140:基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
在本实施例中,在获取目标编译单元后,可以基于目标编译单元,生成新版本应用程序对应的配置文件,并将新版本应用程序对应的配置文件作为第二配置文件。其中,第二配置文件中包括目标编译单元,例如,第二配置文件中包括ID为2的热点编译单元。
可以看出,基于上述方式,服务器可以非常快速地确定新版本应用程序的热点编译单元,从而快速生成去对应的配置文件。在此过程中,不必花时间统计新版本应用程序运行过程中各编译单元的使用频次等信息作为确定热点编译单元的依据,从而提升了确定热点编译单元的效率,进而提高了生成新版本应用程序对应的配置文件的及时性。
本申请一个实施例提供的配置文件的优化方法,获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件,从而通过新老版本的配置文件迁移,可以实现新版本在首次安装时也能起到提前优化的效果,减少应用程序的运行卡顿,提升用户体验。
请参阅图4,图4示出了本申请又一个实施例提供的配置文件的优化方法的流程示意图。该方法应用于上述服务器,下面将针对图4所示的流程进行详细的阐述,所述配置文件的优化方法具体可以包括以下步骤:
步骤S210:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本。
其中,步骤S210的具体描述请参阅步骤S110,在此不再赘述。
步骤S220:解析所述第一配置文件,获取所述第一配置文件记录的所述热点编译单元的索引。
在一些实施方式中,由于第一配置文件记录的是旧版本应用程序的安装包中的热点编译单元的索引,因此,在获取旧版本应用程序对应的第一配置文件后,可以通过解析旧版本应用程序对应的第一配置文件,获取该第一配置文件记录的热点编译单元的索引。作为一种方式,热点编译单元和热点编译单元的索引可以一一对应,即,旧版本应用程序的安装包中的一个热点编译单元,可以在第一配置文件中对应一个索引,例如,当第一配置文件中记录的热点编译单元的索引的数量为n时,表征旧版本应用程序的安装包中的热点编译单元的数量为n,则n个热点编译单元和n个索引一一对应。
步骤S230:基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序对应的热点编译单元的标识信息。
在一些实施方式中,在获取第一配置文件记录的热点编译单元的索引后,可以根据该索引,读取旧版本应用程序的安装包,获取旧版本对应程序对应的热点编译单元的标识信息。
步骤S240:基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元。
步骤S250:基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
其中,步骤S240-步骤S250的具体描述请参阅步骤S130-步骤S140,在此不再赘述。
本申请又一个实施例提供的配置文件的优化方法,获取新版应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,解析第一配置文件,获取第一配置文件记录的热点编译单元的索引,基于该索引读取旧版本应用程序的安装包,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件。相较于图3所示的配置文件的优化方法,本实施例还通过解析第一配置文件获取其记录的热点编译单元的索引,并基于该索引读取旧版本应用程序的安装包获取热点编译单元的标识信息,以提升获取的标识信息的准确性和便捷性。
请参阅图5,图5示出了本申请再一个实施例提供的配置文件的优化方法的流程示意图。该方法应用于上述服务器,下面将针对图5所示的流程进行详细的阐述,所述配置文件的优化方法具体可以包括以下步骤:
步骤S310:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本。
其中,步骤S310的具体描述请参阅步骤S110,在此不再赘述。
步骤S320:解析所述第一配置文件,获取所述第一配置文件记录的所述热点编译单元的索引。
其中,步骤S320的具体描述请参阅步骤S220,在此不再赘述。
步骤S330:基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序的对应的热点编译单元的描述符。
在一些实施方式中,在获取第一配置文件记录的热点编译单元的索引后,可以根据该索引,读取旧版本应用程序的安装包,获取旧版本对应程序对应的热点编译单元的描述符。其中,该描述符是编译单元的定义信息,可以认为是编译单元的唯一名称,只要编译单元不被修改,即版本兼容,这个名称是不会改变的。
步骤S340:基于所述描述符遍历所述新版本应用程序的安装包,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为所述目标编译单元。
在一些实施方式中,在获取旧版本应用程序的对应的热点编译单元的描述符后,可以基于该描述符遍历该新版本应用程序的安装包中的多个编译单元,以从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元。作为一种方式,在获取旧版本应用程序对应的热点编译单元的描述符后,可以基于该描述符遍历该新版本应用程序的安装包中的多个编译单元,从新版本应用程序的安装包的多个编译单元的索引中查找与热点编译单元的索引匹配的索引,作为目标索引,并获取目标索引所指示的编译单元作为目标编译单元。
步骤S350:基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
其中,步骤S350的具体描述请参阅步骤S140,在此不再赘述。
本申请再一个实施例提供的配置文件的优化方法,,获取新版应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,解析第一配置文件,获取第一配置文件记录的热点编译单元的索引,基于该索引读取旧版本应用程序的安装包,获取旧版本应用程序对应的热点编译单元的描述符,基于描述符遍历新版本应用程序的安装包,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件。相较于图3所示的配置文件的优化方法,本实施例还通过解析第一配置文件获取其记录的热点编译单元的索引,并基于该索引读取旧版本应用程序的安装包获取热点编译单元的描述符,并通过描述符遍历新版本应用程序的安装包获取目标编译单元,以提升获取的目标编译单元的准确性和便捷性。
请参阅图6,图6示出了本申请另一个实施例提供的配置文件的优化方法的流程示意图。该方法应用于上述服务器,下面将针对图6所示的流程进行详细的阐述,所述配置文件的优化方法具体可以包括以下步骤:
步骤S410:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本。
其中,步骤S410的具体描述请参阅步骤S110,在此不再赘述。
步骤S420:从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息。
其中,步骤S420的具体描述请参阅步骤S220,在此不再赘述。
步骤S430:基于所述标识信息,从所述旧版本应用程序的安装包的多个编译单元中查找具有所述标识信息的编译单元,并获取具有所述标识信息的编译单元的名称。
值得注意的是,有些情况下,在新版本应用程序的安装包和旧版本应用程序的安装包中,相同或相似的编译单元的标识信息可能不同,但为了代码的可读性及后续维护的方便,其名称通常是一致的。在此情况下,服务器在获取旧版本应用程序对应的热点编译单元的标识信息后,可以从旧版本应用程序的安装包的多个编译单元中查找具有标识信息的编译单元,并获取查找到的编译单元的名称。
步骤S440:基于所述名称,从所述新版本应用程序的安装包的多个编译单元中查找具有所述名称的编译单元,作为所述目标编译单元。
其中,在获取具有标识信息的编译单元的名称后,可以根据该名称,从新版本应用程序的安装包中查找具有该名称的编译单元作为目标编译单元,从而提升目标编译单元的获取准确性。
以基于标识信息id1查找热点编译单元为例,由于第一配置文件与旧版本应用程序的安装包存在对应关系,服务器可以根据从第一配置文件中获取的热点编译单元的标识信息id1从旧版本应用程序的安装包中查找到具有标识信息id1的编译单元,提取该编译单元的名称m1。若第一配置文件中包含多个标识信息,对每个标识信息采取上述的类似操作,可以得到多个热点编译单元的名称。得到名称m1后,服务器可以基于名称m1来查找新版本应用程序的安装包。由于不同版本的安装包中的编译单元存在一定差异,可能出现无法查找到具有名称m1的编译单元的情况,若无法查找到,可以不做处理,若查找到,则可以确定查找到的编译单元是与旧版本应用程序对应的热点编译单元匹配的目标编译单元。
步骤S450:基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
其中,步骤S450的具体描述请参阅步骤S140,在此不再赘述。
本申请另一个实施例提供的配置文件的优化方法,获取新版应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从旧版本应用程序的安装包的多个编译单元中查找具有标识信息的编译单元,并获取具有标识信息的编译单元的名称,基于名称,从新版本应用程序的安装包的多个编译单元中查找具有该名称的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件。相较于图3所示的配置文件的优化方法,本实施例还从旧版本应用程序的安装包中获取具有标识信息的编译单元的名称,并从新版本应用程序的安装包中查找具有该名称的编译单元作为目标编译单元,以提升获取的目标编译单元的准确性和便捷性。
请参阅图7,图7示出了本申请又再一个实施例提供的配置文件的优化方法的流程示意图。该方法应用于上述服务器,下面将针对图7所示的流程进行详细的阐述,所述配置文件的优化方法具体可以包括以下步骤:
步骤S510:接收电子设备在每次运行完所述旧版本应用程序时上传的配置信息,获得多个配置信息。
其中,旧版本应用程序第一次在电子设备启动运行时,由于没有执行提前编译(AOT),即Android中没有该应用程序的机器码,只能以解释器的模式运行。这时,在应用程序的运行时环境中,会启动一个线程(profile-saver),用于实时统计各个编译单元的访问次数。在每次执行编译单元的调用时,都会在内存中打开的访问方法(ArtMethod)中的指标计数器(Count)加1。只有在编译单元的调用次数达到一定阈值时(ArtMethod中的Count),才会将加载的编译单元的索引记录到配置文件。
值得注意的是,电子设备记录编译单元的访问次数是在内存中进行的,那就是说,应用程序在电子设备退出运行时,所有的计数信息均会被清零。对于一些每次启动应用程序都会调用的编译单元,如果调用次数达不到阈值,则不会记录到配置文件中。这样,虽然这些编译单元对于启动和运行应用程序起到关键路径的作用,但是却没有被编译成机器码,意味着每次调用这些编译单元,都会以解释器模式运行,效率较低。
因此,在本实施例中,可以在电子设备的Android ART中增加钩子函数(HOOK),以通过钩子函数捕获应用程序在运行时的配置信息,其中,该配置信息至少可以包括针对旧版本应用程序的安装包的编译单元中的每个编译单元的调用次数,以及每个编译单元的索引。那么,电子设备可以在每次运行完旧版本应用程序时,将内存中记录的配置信息上传至服务器,则服务器可以获得多个配置信息,例如,假设应用程序按时间顺序在电子设备运行3次,则电子设备在第一次运行完旧版本应用程序时,将内存中记录的第一次运行对应的第一配置信息上传至服务器,在第二次运行完旧版本应用程序时,将内存中记录的第二次运行对应的第二配置信息上传至服务器,在第三次运行完旧版本应用程序时,将内存中记录的第三次运行对应的第三配置信息上传至服务器,则服务器可以获取第一配置信息、第二配置信息以及第三配置信息。
步骤S520:将所述多个配置信息进行合并处理,获得第一配置文件。
其中,服务器可以预先设置有profman,其中,profman为一种可以解析配置文件的工具。那么,服务器在获取多个配置信息后,可以利用profman将多个配置信息做合并处理,获得第一配置文件。
例如,假设多个配置信息包括第一配置信息、第二配置信息以及第三配置信息,其中,第一配置信息包括编译单元1调用15次,编译单元2调用10次,编译单元3调用5次,第二配置信息包括编译单元1调用20次,编译单元2调用10次,编译单元3调用3次,第三配置信息包括编译单元1调用30次,编译单元2调用16次,编译单元3调用7次,则将第一配置信息、第二配置信息以及第三配置信息进行合并处理,可以得到编译单元1调用60次,编译单元2调用36次,编译单元3调用15次,再根据预先设置的热点编译单元的判定条件,对编译单元1、编译单元2以及编译单元3是否为热点编译单元进行判定,其中,当判定编译单元1和编译单元2为热点编译单元,编译单元3为非热点编译单元时,则获得的第一配置文件中可以包括编译单元1的索引和编译单元2的索引。
另外,服务器可以将所有运行该旧版本应用程序的电子设备上的配置信息均进行收集,由于配置文件的正确性只与应用程序的安装包版本相关,与运行设备无关,因此,可以利用大数据提高最终生成的第一配置文件的正确性,以平衡调用编译单元的有效性和机器码大小。其中,配置文件记录的应用程序的安装包中的热点编译单元的索引,所以,配置文件与应用程序的安装包和安装包中的热点编译单元的索引顺序有关。也就是说,不同版本的应用程序安装包,对应的配置文件不同,同一个应用程序安装包,不同版本(可能存在代码兼容的问题,导致不同版本中,同一个方法,索引不同),其对应的配置文件也可能不同。所以,配置文件的正确性是跟应用程序的安装包版本一一匹配的。
请参阅图8,图8示出了本申请的图7所示的配置文件的优化方法的步骤S520的流程示意图。其中,在本实施例中,配置信息至少包括针对旧版本应用程序的安装包的编译单元中的每个编译单元的调用次数,下面将针对图8所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S521:将所述多个配置信息进行合并处理,获取所述每个编译单元的总调用次数。
在本实施例中,配置信息至少包括针对旧版本应用程序的安装包的编译单元中的每个编译单元的调用次数,将将多个配置信息进行合并处理时,可以将每个配置信息中针对相同编译单元的调用次数相加,获取每个编译单元的总调用次数。
例如,假设多个配置信息包括第一配置信息、第二配置信息以及第三配置信息,其中,第一配置信息包括编译单元1调用15次,编译单元2调用10次,编译单元3调用5次,第二配置信息包括编译单元1调用20次,编译单元2调用10次,编译单元3调用3次,第三配置信息包括编译单元1调用30次,编译单元2调用16次,编译单元3调用7次,则将第一配置信息、第二配置信息以及第三配置信息进行合并处理,可以得到编译单元1的总调用次数为60次,编译单元2的总调用次数为36次,编译单元3的总调用次数为15次。
步骤S522:按所述每个编译单元的总调用次数从高到低的顺序,从所述多个编译单元中确定热点编译单元。
在一些实施方式中,在获取多个编译单元中的每个编译单元的总调用次数后,可以按每个编译单元的总调用次数从高到低的顺序,从多个编译单元中确定热点编译单元。如上例所示,按每个编译单元的总调用次数从高到低的顺序对编译单元1、编译单元2以及编译单元3进行排序获得:编译单元1-编译单元2-编译单元3,那么,若从三个编译单元中确定两个热点编译单元,则可以将编译单元1和编译单元2确定为热点编译单元,若从三个编译单元中确定一个热点编译单元,则可以将编译单元1确定为热点编译单元,在此不做限定。
在一些实施方式中,为了均衡配置文件的存在(只有配置文件存在,才能基于配置文件将代码编译成机器码)和配置文件的大小(如果配置文件太大,包含了热点编译单元太多,生成的机器码文件会太大,对Android存储会造成负面影响),则可以设置预设比例。因此,在本实施例中,可以按每个编译单元的总调用次数从高到低的顺序,从多个编译单元中选择预设比例的编译单元,作为热点编译单元,从而可以优化配置文件的存储和配置文件的大小。
在一些实施方式中,预设比例可以基于旧版本应用程序的安装包的多个编译单元中的有效编译单元的占比确定。一般地,根据测试结果,真正有效的编译单元站总编译单元的20%,则该预设比例可以设置为20%。其中,有效编译单元是指的在应用程序运行过程中,被调用到的编译单元。应用程序中的编译单元,可能会包含异常处理(只有出错的时候,才能调用到)、分支逻辑(按使用情况,比如输入A,调用逻辑A,输入B,调用逻辑B),这样,在一个正常执行的流程中,真正调用的编译单元,只有其中的一小部分。应用程序使用过程中,基本都应是正常逻辑,所以,大部分编译单元可能都不会被调用到,那对于编译来说,就可认为是无效编译单元。
步骤S523:基于所述热点编译单元,获得所述第一配置文件。
在一些实施方式中,在获取热点编译单元后,可以基于热点编译单元,获得第一配置文件,其中,该第一配置文件记录有该热点编译单元的索引。
步骤S530:获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本。
步骤S540:从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息。
步骤S550:基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元。
步骤S560:基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
其中,步骤S530-步骤S560的具体描述请参阅步骤S110-步骤S140,在此不再赘述。
本申请又再一个实施例提供的配置文件的优化方法,接收电子设备在每次运行完旧版本应用程序时上传的配置信息,获得多个配置信息,将多个配置信息进行合并处理,获得第一配置文件,获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件。相较于图3所示的配置文件的优化方法,本实施例还将配置信息上传至服务器保存,使产生的配置文件更加准确合理,更能体现应用程序在真实使用场景中的方法调用情况,使得代码编译达到最佳效果。
请参阅图9,图9示出了本申请实施例提供的配置文件的优化装置的模块框图。该配置文件的优化装置300应用于上述服务器,下面将针对图9所示的框图进行阐述,所述配置文件的优化装置300包括:第一配置文件获取模块310、标识信息获取模块320、目标编译单元查找模块330以及第二配置文件获取模块340,其中:
第一配置文件获取模块310,用于获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本。
标识信息获取模块320,用于从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息。
进一步地,所述标识信息获取模块320包括:索引获取子模块和标识信息获取子模块,其中:
索引获取子模块,用于解析所述第一配置文件,获取所述第一配置文件记录的所述热点编译单元的索引。
标识信息获取子模块,用于基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序对应的热点编译单元的标识信息。
进一步地,所述标识信息获取子模块包括:
描述符获取单元,用于基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序的对应的热点编译单元的描述符。
目标编译单元查找模块330,用于基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元。
进一步地,所述目标编译单元查找模块330包括:第一目标编译单元查找子模块,其中:
第一目标编译单元查找子模块,用于基于所述描述符遍历所述新版本应用程序的安装包,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为所述目标编译单元。
进一步地,所述目标编译单元查找模块330包括:名称查找子模块和第二目标编译单元查找子模块,其中:
名称查找子模块,用于基于所述标识信息,从所述旧版本应用程序的安装包的多个编译单元中查找具有所述标识信息的编译单元,并获取具有所述标识信息的编译单元的名称。
第二目标编译单元查找子模块,用于基于所述名称,从所述新版本应用程序的安装包的多个编译单元中查找具有所述名称的编译单元,作为所述目标编译单元。
第二配置文件获取模块340,用于基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
进一步地,所述配置文件的优化装置300还包括:配置信息获得模块和第一配置文件获得模块,其中:
配置信息获得模块,用于接收电子设备在每次运行完所述旧版本应用程序时上传的配置信息,获得多个配置信息。
第一配置文件获得模块,用于将所述多个配置信息进行合并处理,获得第一配置文件。
进一步地,所述配置信息至少包括针对所述旧版本应用程序的安装包的多个编译单元中的每个编译单元的调用次数,所述第一配置文件获得模块包括:总调用次数获取子模块、热点编译单元确定子模块以及第一配置文件获得子模块,其中:
总调用次数获取子模块,用于将所述多个配置信息进行合并处理,获取所述每个编译单元的总调用次数。
热点编译单元确定子模块,用于按所述每个编译单元的总调用次数从高到低的顺序,从所述多个编译单元中确定热点编译单元。
进一步地,所述热点编译单元确定子模块包括:热点编译单元确定单元,其中:
热点编译单元确定单元,用于按所述每个编译单元的总调用次数从高到低的顺序,从所述多个编译单元中选择预设比例的编译单元,作为所述热点编译单元。
第一配置文件获得子模块,用于基于所述热点编译单元,获得所述第一配置文件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图10,其示出了本申请实施例提供的一种服务器100的结构框图。该服务器100可以包括云服务器、也可以包括传统服务器等。本申请中的服务器100可以包括一个或多个如下部件:处理器110、存储器120、触摸屏130以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个服务器100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行服务器100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储服务器100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的配置文件的优化方法、装置、服务器以及存储介质,获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,新版应用程序和旧版应用程序是同一个应用程序的不同版本,从第一配置文件中,获取旧版本应用程序对应的热点编译单元的标识信息,基于标识信息,从新版本应用程序的安装包的多个编译单元中查找与热点编译单元匹配的编译单元,作为目标编译单元,基于目标编译单元,生成新版本应用程序对应的配置文件作为第二配置文件,从而通过新老版本的配置文件迁移,可以实现新版本在首次安装时也能起到提前优化的效果,减少应用程序的运行卡顿,提升用户体验。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种配置文件的优化方法,其特征在于,应用于服务器,所述方法包括:
获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本;
从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息;
基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元;
基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
2.根据权利要求1所述的方法,其特征在于,所述从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息,包括:
解析所述第一配置文件,获取所述第一配置文件记录的所述热点编译单元的索引;
基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序对应的热点编译单元的标识信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序对应的热点编译单元的标识信息,包括:
基于所述索引读取所述旧版本应用程序的安装包,获取所述旧版本应用程序的对应的热点编译单元的描述符;
所述基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元,包括:
基于所述描述符遍历所述新版本应用程序的安装包,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为所述目标编译单元。
4.根据权利要求1所述的方法,其特征在于,所述基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元,包括:
基于所述标识信息,从所述旧版本应用程序的安装包的多个编译单元中查找具有所述标识信息的编译单元,并获取具有所述标识信息的编译单元的名称;
基于所述名称,从所述新版本应用程序的安装包的多个编译单元中查找具有所述名称的编译单元,作为所述目标编译单元。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件,作为第一配置文件之前,还包括:
接收电子设备在每次运行完所述旧版本应用程序时上传的配置信息,获得多个配置信息;
将所述多个配置信息进行合并处理,获得第一配置文件。
6.根据权利要求5所述的方法,其特征在于,所述配置信息由所述电子设备通过钩子函数捕获。
7.根据权利要求5所述的方法,其特征在于,所述配置信息至少包括针对所述旧版本应用程序的安装包的多个编译单元中的每个编译单元的调用次数,所述将所述多个配置信息进行合并处理,获得第一配置文件,包括:
将所述多个配置信息进行合并处理,获取所述每个编译单元的总调用次数;
按所述每个编译单元的总调用次数从高到低的顺序,从所述多个编译单元中确定热点编译单元;
基于所述热点编译单元,获得所述第一配置文件。
8.根据权利要求7所述的方法,其特征在于,所述按所述每个编译单元的总调用次数从高到低的顺序,从所述多个编译单元中确定热点编译单元,包括:
按所述每个编译单元的总调用次数从高到低的顺序,从所述多个编译单元中选择预设比例的编译单元,作为所述热点编译单元。
9.根据权利要求8所述的方法,其特征在于,所述预设比例基于所述旧版本应用程序的安装包的多个编译单元中的有效编译单元的占比确定。
10.一种配置文件的优化装置,其特征在于,应用于服务器,所述装置包括:
第一配置文件获取模块,用于获取新版本应用程序的安装包,并获取旧版本应用程序对应的配置文件作为第一配置文件,所述新版本应用程序和所述旧版本应用程序是同一个应用程序的不同版本;
标识信息获取模块,用于从所述第一配置文件中,获取所述旧版本应用程序对应的热点编译单元的标识信息;
目标编译单元查找模块,用于基于所述标识信息,从所述新版本应用程序的安装包的多个编译单元中查找与所述热点编译单元匹配的编译单元,作为目标编译单元;
第二配置文件获取模块,用于基于所述目标编译单元,生成所述新版本应用程序对应的配置文件作为第二配置文件。
11.一种服务器,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-9任一项所述的方法。
12.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011595387.1A CN112559088A (zh) | 2020-12-29 | 2020-12-29 | 配置文件的优化方法、装置、服务器以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011595387.1A CN112559088A (zh) | 2020-12-29 | 2020-12-29 | 配置文件的优化方法、装置、服务器以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559088A true CN112559088A (zh) | 2021-03-26 |
Family
ID=75032833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011595387.1A Pending CN112559088A (zh) | 2020-12-29 | 2020-12-29 | 配置文件的优化方法、装置、服务器以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559088A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568634A (zh) * | 2021-06-28 | 2021-10-29 | 荣耀终端有限公司 | 应用优化的处理方法及处理装置 |
CN113885870A (zh) * | 2021-08-27 | 2022-01-04 | 荣耀终端有限公司 | 应用程序更新方法、电子设备、终端设备及系统 |
CN117130617A (zh) * | 2023-01-19 | 2023-11-28 | 荣耀终端有限公司 | 一种应用程序的编译方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061483A (zh) * | 2019-11-28 | 2020-04-24 | Oppo广东移动通信有限公司 | 编译优化方法、装置及电子设备 |
CN111061484A (zh) * | 2019-11-28 | 2020-04-24 | Oppo广东移动通信有限公司 | 代码编译方法、装置、服务器、用户终端及可读介质 |
CN111078318A (zh) * | 2019-12-18 | 2020-04-28 | Oppo广东移动通信有限公司 | 配置文件的处理方法、装置、系统及存储介质 |
-
2020
- 2020-12-29 CN CN202011595387.1A patent/CN112559088A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061483A (zh) * | 2019-11-28 | 2020-04-24 | Oppo广东移动通信有限公司 | 编译优化方法、装置及电子设备 |
CN111061484A (zh) * | 2019-11-28 | 2020-04-24 | Oppo广东移动通信有限公司 | 代码编译方法、装置、服务器、用户终端及可读介质 |
CN111078318A (zh) * | 2019-12-18 | 2020-04-28 | Oppo广东移动通信有限公司 | 配置文件的处理方法、装置、系统及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568634A (zh) * | 2021-06-28 | 2021-10-29 | 荣耀终端有限公司 | 应用优化的处理方法及处理装置 |
CN113885870A (zh) * | 2021-08-27 | 2022-01-04 | 荣耀终端有限公司 | 应用程序更新方法、电子设备、终端设备及系统 |
CN113885870B (zh) * | 2021-08-27 | 2022-09-20 | 荣耀终端有限公司 | 应用程序更新方法、电子设备、终端设备及系统 |
CN117130617A (zh) * | 2023-01-19 | 2023-11-28 | 荣耀终端有限公司 | 一种应用程序的编译方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061484B (zh) | 代码编译方法、装置、服务器、用户终端及可读介质 | |
CN112559088A (zh) | 配置文件的优化方法、装置、服务器以及存储介质 | |
CN111061483B (zh) | 编译优化方法、装置及电子设备 | |
CN111078318A (zh) | 配置文件的处理方法、装置、系统及存储介质 | |
CN111078279B (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
CN112948026A (zh) | 热点代码处理方法、装置、服务器、电子设备及存储介质 | |
CN111258557B (zh) | 代码处理方法、装置、电子设备及计算机可读介质 | |
CN109947624B (zh) | 状态监控方法及装置 | |
CN112667405B (zh) | 信息处理方法、装置、设备及存储介质 | |
WO2021115177A1 (zh) | 应用安装方法、装置、终端设备、服务器及存储介质 | |
CN112558984A (zh) | 代码编译的方法、装置、电子设备以及服务器 | |
CN114238948A (zh) | 一种应用程序检测方法、装置、电子设备及存储介质 | |
CN112099800A (zh) | 代码数据的处理方法、装置和服务器 | |
CN112732321A (zh) | 一种固件修改方法、装置、计算机可读存储介质和设备 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN117033249A (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN114911541B (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN109426546B (zh) | 应用启动方法及装置、计算机存储介质及设备 | |
CN112783500B (zh) | 编译优化信息生成方法、装置及电子设备 | |
WO2021121188A1 (zh) | 配置文件的处理方法、装置、系统及存储介质 | |
CN117075912B (zh) | 用于程序语言转换的方法、编译方法及相关设备 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN112947898A (zh) | 热点代码确定方法、装置、服务器以及存储介质 | |
CN115687067A (zh) | 一种应用程序识别方法及相关装置 | |
CN115454439A (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 |