CN112783500B - 编译优化信息生成方法、装置及电子设备 - Google Patents
编译优化信息生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112783500B CN112783500B CN201911087681.9A CN201911087681A CN112783500B CN 112783500 B CN112783500 B CN 112783500B CN 201911087681 A CN201911087681 A CN 201911087681A CN 112783500 B CN112783500 B CN 112783500B
- Authority
- CN
- China
- Prior art keywords
- compiling
- information
- compiling unit
- hot spot
- identification information
- 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
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 199
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000009434 installation Methods 0.000 claims abstract description 106
- 230000004927 fusion Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000007499 fusion processing Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 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
- 238000013138 pruning Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种编译优化信息生成方法、装置及电子设备,涉及计算机技术领域。其中,该方法包括:根据至少一个旧版本热点编译单元的标识信息,从新版本安装包中查找与该至少一个旧版本热点编译单元匹配的目标编译单元,根据查找到的目标编译单元生成新版本的编译优化信息。如此,可以及时地生成新版本应用程序的编译优化信息,用以指导应用程序的编译优化。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种编译优化信息生成方法、装置及电子设备。
背景技术
为了提高电子设备对应用程序的执行效率,通常需要利用编译器的代码优化功能对应用程序进行编译优化。比如,从应用程序的各个编译单元中确定使用频次较高的热点编译单元,基于确定的热点编译单元生成编译优化信息。编译器可以根据编译优化信息将热点编译单元的程序代码转换成机器代码,从而避免在应用程序运行时对热点编译单元进行即时(just-in-time)编译。
但是,现有的编译优化方式通常需要花费一段时间才能生成编译优化信息,不够及时。
发明内容
鉴于上述问题,本申请提出了一种编译优化信息生成方法、装置及电子设备,能够及时地生成用于应用程序的新版本编译优化信息。
第一方面,本申请实施例提供了一种编译优化信息生成方法,该方法包括:获取应用程序的新版本安装包;获取所述应用程序的至少一个旧版本热点编译单元的标识信息;根据所述标识信息,从所述新版本安装包中查找与所述至少一个旧版本热点编译单元匹配的目标编译单元;根据查找到的目标编译单元,生成所述新版本应用程序的编译优化信息。
第二方面,本申请实施例提供了一种编译优化装置,该装置包括:获取模块,用于获取应用程序的新版本安装包,以及获取所述应用程序的至少一个旧版本热点编译单元的标识信息;查找模块,用于根据所述标识信息,从所述新版本安装包中查找与所述至少一个旧版本热点编译单元匹配的目标编译单元;生成模块,用于根据查找到的目标编译单元,生成所述新版本应用程序的编译优化信息。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中存储有程序代码,该程序代码可被处理器调用执行上述的方法。
相对于现有技术,本申请提供的方案中,电子设备根据应用程序的至少一个旧版本热点编译单元的标识信息,从该应用程序的新版本安装包中查找与该至少一个旧版本热点编译单元匹配的目标编译单元,从而可以及时地根据查找到的目标编译单元,生成新版本应用程序的编译优化信息,可以不必花时间统计应用程序的编译单元在运行过程中被使用的频次来确定热点编译单元,提高了生成编译优化信息的及时性。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种适用于本申请实施例的应用环境示意图。
图2示出了根据本申请一个实施例的编译优化信息生成方法流程图。
图3示出了根据本申请另一个实施例的编译优化信息生成方法流程图。
图4示出了本申请实施例提供的目标编译优化信息的生成流程图。
图5示出了本申请实施例提供的电子设备的结构框图。
图6示出了本申请实施例提供的编译优化信息生成装置的框图。
图7是本申请实施例的用于保存或者携带实现根据本申请实施例的编译优化信息生成方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
经研究发现,一些实施方式中,通常采用如下方式来对应用程序进行编译:
用户终端在安装应用程序之后,首先通过解析器对应用程序解释执行,执行过程中,对应用程序的各个编译单元的调用次数、循环次数等进行统计,当将调用次数或循环次数达到设定阈值的编译单元识别为热点编译单元,并记录到一配置文件(profile)中。其中,编译单元可以理解为应用程序的源码中的函数、方法(method)或者类(class)。配置文件通常为二进制文件,其中包含应用程序源码中热点编译单元的标识信息,例如ID(Identity,身份)信息。用户终端进入空闲或充电状态时,扫描配置文件,将配置文件中记录的热点编译单元的程序代码编译为机器代码,从而避免后续在应用程序运行时对热点编译单元进行即时编译。
上述方式中,通常需要对应用程序的编译单元的调用次数、循环次数等信息进行一段时间的统计,才能获得足够的信息量来确定热点编译单元,进而生成用于指导优化的配置文件。在这段时间内,用户终端只能采用解释器执行或即时编译的方式运行应用程序,性能不佳。
另一些实施方式中,对于新版本的应用程序,部分用户终端通过统计各编译单元的调用次数、循环次数来确定热点编译单元,进而生成指导编译优化的配置文件。此外,通过服务器对所述部分用户终端中的配置文件进行采集,并对采集的配置文件进行聚类,从而生成优化后的配置文件,后续有其他用户终端请求下载应用程序的安装包时,将优化后的配置文件一并发送给其他用户终端。这种方式中,大部分用户终端可以及时获得指导编译优化的配置文件,然而,仍有部分用户终端需要花时间统计编译单元的使用频次,难以及时生成编译优化信息。
针对以上问题,本申请提出一种编译优化信息生成方法、装置及电子设备,根据旧版本热点编译单元的标识信息,从新版本安装包中查找与旧版本热点编译单元匹配的目标编译单元,避免了对应用程序运行过程中编译单元的使用频次进行统计所花的时间,可以及时地基于目标编译单元生成新版本的编译优化信息,用以指导基于新版本安装包得到的新版本应用程序的编译优化。
下面通过具体的实施例对本申请提出的方案进行详细阐述。
请参阅图1,图1为本申请实施例的应用场景示意图。其中,服务器100可以通过网络与多个用户终端通信,多个用户终端比如可以为图1所示的用户终端200和300。
服务器100可以是提供应用程序安装包下载服务的服务端设备,比如应用商店服务器,也可以是与提供应用程序安装包下载服务的服务端设备通信的其他服务器,本实施例对此没有限制。可以理解,本实施例中,服务器100可以是独立运行的服务器,也可以是相互通信的多个服务器组成的集群中的一个。
用户终端可以是任何具有数据处理功能、通信功能的终端设备。比如,本申请实施例用户终端可以是,但不限于,智能手机、平板电脑、笔记本电脑等。用户终端可以通过多种方式访问服务器100,例如,用户终端可以安装服务器100提供的客户端,通过该客户端访问服务器100;又如,用户终端可以通过浏览器访问服务器100;又如,用户终端可以通过运行于第三方应用程序的程序来访问服务器100。本实施例对此没有限制。
图1所示场景中,用户可以通过其用户终端将应用程序的安装包上传至服务器100,供其他用户下载。比如,用户A通过用户终端200将应用程序X1的安装包Y1上传至服务器100,用户B可以通过其用户终端300下载该安装包Y1进行安装,得到对应的应用程序X1。又如,用户B可以通过其用户终端300上传应用程序X2的安装包Y2至服务器100,用户A可以通过其用户终端200下载安装包Y2进行安装,从而得到对应的应用程序X2。
请参阅图2,图2为本申请一实施例提供的编译优化信息生成方法的流程示意图,该方法可以应用于电子设备,电子设备可以是图1所示的服务器100或者任意一个用户终端。下面对该方法包括的各个步骤进行阐述。
步骤S110,获取应用程序的新版本安装包。
本实施例中,电子设备存储有新版本安装包。以电子设备是服务器100为例,新版本安装包可以是用户终端上传的。以电子设备是用户终端为例,新版本安装包可以是从服务器100下载的。
步骤S120,获取所述应用程序的至少一个旧版本热点编译单元的标识信息。
本实施例中,电子设备存储有至少一个旧版本热点编译单元的标识信息,示例性地,所述标识信息可以以配置文件的形式存储于电子设备中,例如可以是包含热点编译单元的标识信息、属性信息等的profile文件。其中,旧版本热点编译单元的标识信息可以是该旧版本热点编译单元在应用程序的该旧版本安装包中的ID信息,属性信息例如可以包括旧版本热点编译单元的类型(如,函数或类)、运行阶段(如,启动前运行或启动后运行)等。可以理解,前述的profile文件仅为举例说明,本实施例的标识信息还可以以其他形式存储于电子设备中。
示例性地,如果电子设备是服务器100,旧版本热点编译单元的标识信息可以是从用户终端采集得到的。如果电子设备是用户终端,旧版本热点编译单元的标识信息可以是运行旧版本的应用程序的过程中保存的。其中,旧版本的应用程序可以通过安装旧版本安装包得到。
步骤S130,根据所述标识信息,从所述新版本安装包中查找与所述至少一个旧版本热点编译单元匹配的目标编译单元。
步骤S140,根据查找到的目标编译单元,生成所述新版本应用程序的编译优化信息。
本实施例中,应用程序的新版本安装包和旧版本安装包的代码虽然存在区别,但两者的差异不会太大,对应地,两个版本的热点编译单元的差异也不会太大。因此,对于旧版本热点编译单元,本实施例根据其标识信息从新版本安装包中查找是否存在匹配的目标编译单元,如果查找到,说明新版本安装包中存在与旧版本热点编译单元类似的编译单元,则可以将该类似的编译单元(目标编译单元)确定为新版本热点编译单元,并基于该新版本热点编译单元生成新版本编译优化信息,用以指导基于新版本安装包得到的新版本应用程序的编译优化。
按照图2所示流程,可以根据需要快速地生成新版本应用程序的编译优化信息。可以理解,本实施例中,用户终端可以在从服务器100下载新版本安装包且无法从服务器100获取到新版本编译优化信息的情况下,针对该新版本安装包执行本实施例提供的编译优化信息生成方法。服务器100可以是在接收到用户针对某一新版本安装包的发布请求时,即需要发布该新版本安装包时,针对该新版本安装包执行本实施例提供的编译优化信息生成方法。
例如,用户终端200可以在下载应用程序X2的新版本安装包Y2之后,检测是否可以从服务器100获取到应用程序X2的新版本profile文件,如果否,可以从本设备获取应用程序X2的旧版本profile文件,其中记载了应用程序X2的旧版本热点编译单元的ID,例如包括9001、9003,根据ID 9001没有从新版本安装包Y2中查找到匹配的编译单元,根据ID 9003从新版本安装包Y2中查找到ID为9003的编译单元,则可以确定查找到的该编译单元是与旧版本热点编译单元9003匹配的目标编译单元,进而可以根据新版本安装包中,ID为9003的编译单元生成新版本profile文件作为新版本编译优化信息。该新版本profile文件例如可以包括新版本热点编译单元的ID 9003。
又如,服务器100可以在接收到用户终端200针对应用程序X1的新版本安装包Y1的发布请求时,获取新版本安装包Y1以及应用程序X1的旧版本profile文件,再按照图2所示流程进行处理,在此不再赘述。
可以看出,通过图2所示的流程,可以非常快速地确定新版本的应用程序的热点编译单元,从而快速生成新版本编译优化信息。在此过程中,不必花时间统计新版本的应用程序运行过程中各编译单元的使用频次等信息作为确定热点编译单元的依据,从而提升了确定热点编译单元的效率,进而提高了生成新版本编译优化信息的及时性。
请参照图3,图3为本申请另一实施例提供的一种编译优化信息生成方法的流程示意图,该方法可以应用于图1所示的服务器100。下面以服务器100是应用商店服务器为例,对图3所示流程进行阐述。
步骤S210,获取应用程序的新版本安装包。
步骤S220,获取所述应用程序的多个旧版本热点编译单元的标识信息,其中,所述多个旧版本热点编译单元包括具有第一标识信息的第一旧版本热点编译单元和具有第二标识信息的第二旧版本热点编译单元。
本实施例中,服务器100可以保存有应用程序的至少两个不同版本的旧版本编译优化信息。例如,服务器100保存有第一旧版本编译优化信息和第二旧版本编译优化信息,第一旧版本编译优化信息包括至少一个第一旧版本热点编译单元的第一标识信息,第二旧版本编译优化信息包括至少一个第二旧版本热点编译单元的第二标识信息。
步骤S230,根据所述第一标识信息,从所述新版本安装包中查找与所述第一旧版本热点编译单元匹配的目标编译单元,根据所述第二标识信息,从所述新版本安装包中查找与所述第二旧版本热点编译单元匹配的目标编译单元。
步骤S240,根据查找到的第一目标编译单元,生成所述新版本的第一编译优化信息,根据查找到的第二目标编译单元,生成所述新版本的第二编译优化信息。
本实施例中,服务器100分别根据第一标识信息和第二标识信息从新版本安装包中查找匹配的目标编译单元的方式,与图1所示的步骤S130类似,在此不再赘述。
值得注意的是,有些情况下,应用程序的不同版本安装包中,相同或相似的编译单元的标识信息可能不同,但为了代码的可读性及后续维护的方便,其名称通常是一致的。在此情况下,对于获取的每个旧版本热点编译单元,服务器100可以获取对应的旧版本安装包,例如,服务器100可以获取并保存与上述的第一旧版本编译优化信息对应的第一旧版本安装包以及与上述的第二旧版本编译优化信息对应的第二旧版本安装包,并通过如下流程来实现步骤S230:
从第一旧版本安装包中查找具有第一标识信息的编译单元,获取查找到的编译单元的第一名称,根据该第一名称,从新版本安装包中查找具有该第一名称的编译单元作为第一目标编译单元;
从第二旧版本安装包中查找具有第二标识信息的编译单元,获取查找到的编译单元的第二名称,根据该第二名称,从新版本安装包中查找具有该第二名称的编译单元作为第二目标编译单元。
请参照图4,其中示出了步骤S230的详细实现流程。以基于第一标识信息id1查找第一目标编译单元为例,由于第一旧版本编译优化信息与第一旧版本安装包的对应关系,服务器100可以根据第一标识信息id1从第一旧版本安装包中查找到具有第一标识信息id1的编译单元,提取该编译单元的名称作为第一名称n1,再从第一旧版本编译优化信息中提取第一标识信息id1指示的第一旧版本热点编译单元的第一属性信息f1,将提取的第一名称n1和第一属性信息f1形成一条描述数据data1,并将该描述数据data1添加到生成的第一旧版本描述文件中。
若第一旧版本编译优化信包含多个第一标识信息,对每个第一标识信息采取上述的类似操作,可以得到包括多条描述数据的第一旧版本描述文件。以类似方式,服务器100可以基于第二旧版本编译优化信息得到第二旧版本描述文件。
得到第一旧版本描述文件后,服务器100可以基于第一旧版本描述文件中的每个第一名称来查找新版本安装包。以上述的第一名称n1为例,服务器100可以从新版本安装包中查找具有第一名称n1的编译单元。由于不同版本的安装包中的编译单元存在一定差异,可能出现无法查找到具有第一名称n1的编译单元的情况,若无法查找到,可以不做处理,若查找到,则可以确定查找到的编译单元是与第一旧版本热点编译单元匹配的第一目标编译单元。为便于描述,在此将第一目标编译单元在新版本安装包中的标识信息描述为第三标识信息。对于确定的第一目标编译单元,可以从新版本安装包中获取其第三标识信息id1’,从第一旧版本描述文件中提取作为本次查找的索引的第一标识信息id1对应的第一属性信息f1,将提取的第三标识信息id1’以及第一属性信息f1组成一条数据,添加到新版本的第一编译优化信息中。
对第一旧版本描述文件中的每个第一名称执行上述的流程,即可得到完整的第一编译优化信息。以类似方式,服务器100可以基于第二旧版本描述文件得到新版本的第二编译优化信息。其中,第二编译优化信息包每个第二目标编译单元在新版本安装包中的第四标识信息。
步骤S250,将所述第二编译优化信息融合到所述第一编译优化信息中,得到所述新版本的目标编译优化信息。
步骤S260,响应用户终端针对应用程序的新版本安装包的下载请求,将所述新版本安装包和新版本的目标编译优化信息发送给所述用户终端。
本实施例中,在不同版本的安装包中相同或相似编译单元的标识信息一致的情况下,可以直接对第一编译优化信息和第二编译优化信息进行融合。具体可以有多种方式。
一种实施方式中,针对第二编译优化信息中的每个第四标识信息,可以从第一编译优化信息中查找是否存在与第四标识信息相同的目标第三标识信息。若不存在相同的目标第三标识信息,将所述第四标识信息及所述第四标识信息对应的属性信息添加到所述第一编译优化信息中。若存在相同的目标第三标识信息,则可以不做处理。
另一种实施方式中,服务器100可以首先对各个旧版本编译优化信息中的旧版本热点编译单元的热度信息进行统计,其实现方式例如是:针对每一旧版本热点编译单元,获取来自不同用户终端的多个所述旧版本的编译优化信息;统计多个所述旧版本的编译优化信息中,包含所述旧版本热点编译单元的编译优化信息的数量;计算统计的数量与获取的编译优化信息的数量的比值,得到所述旧版本热点编译单元的热度信息。如此,获得的热度信息可以指示旧版本编译优化信息中的每个标识信息指示的编译单元,是热点编译单元的概率。
对应地,可以将获得的热度信息添加到上述生成的新版本的编译优化信息中,那么,第一编译优化信息可以包括:第一目标编译单元在新版本安装包中的第三标识信息,第一目标编译单元的第一属性信息,以及第一目标编译单元匹配的第一旧版本热点编译单元的热度信息。第二编译优化信息可以包括:第二目标编译单元在新版本安装包中的第四标识信息,第二目标编译单元的第二属性信息,以及所述第二目标编译单元匹配的所述第二旧版本热点编译单元的热度信息。
在此情况下,本实施方式中,服务器100可以通过如下流程将第二编译优化信息融合到第一编译优化信息中:针对第二编译优化信息中的每个第四标识信息,从第一编译优化信息中查找是否存在与第四标识信息相同的目标第三标识信息。若不存在目标第三标识信息,则可以将第四标识信息及其对应的第二属性信息、热度信息形成一条数据,添加到第一编译优化信息中。若存在目标第三标识信息,则可以根据第四标识信息对应的热度信息,对第一编译优化信息中与目标第三标识信息对应的热度信息进行更新。
其中,根据第四标识信息对应的热度信息,对第一编译优化信息中与目标第三标识信息对应的热度信息进行更新的方式可以是:
根据所述第二旧版本与所述新版本的跨度信息,确定所述第四标识信息对应的热度信息的权重,以及根据所述第一旧版本与所述新版本的跨度信息,确定所述目标第三标识信息对应的热度信息的权重,其中,热度信息的权重与所述跨度信息成反比例关系;
根据所确定的权重,对所述第四标识信息对应的热度信息以及所述目标第三标识信息对应的热度信息进行加权求和,得到更新后的热度信息。
其中,跨度信息可以是版本跨度或者发布时间的跨度。本实施例中,可以根据旧版本与新版本的跨度信息确定一个衰减函数,该衰减函数以跨度信息为因变量,函数值与跨度信息成反比例关系。例如,新版本VN+1与旧版本Vi(i≥1且i为正整数)的衰减函数可以表示为f(VN+1-Vi)。衰减函数的函数值可以作为基于该旧版本热点编译单元确定的新版本热点编译单元的热度信息的权重。
可选地,所述衰减函数f(VN+1-Vi)可以采用如下方式计算:
其中,衰减函数值的范围为(0,1],基于以上计算式得到的所有衰减函数值之和为:
可以看出,通过上述计算式得到的所有衰减函数值之和为1,既便于处理,又能够使得衰减函数值更为直观地反映旧版本热点编译单元的热度信息对新版本热点编译单元的热度信息的影响程度。
下面给出一个示例,对第一编译优化信息和第二编译优化信息的融合过程进行阐述。
本示例中,第一编译优化信息中的一条数据包含第三标识信息id1’、第一属性信息f1、热度信息h1;第二编译优化信息中的一条数据包含第四标识信息id1’、第二属性信息f1、热度信息h3,另一条数据包含第四标识信息id2’、第二属性信息f2、热度信息h2。
详细地,对于第二编译优化信息中的第四标识信息id1’,服务器100从第一编译优化信息中查找到与第四标识信息id1’相同的第三标识信息id1’,将其确定为目标第三标识信息。然后,确定第二编译优化信息与第二旧版本对应,第一编译优化信息与第一旧版本对应,从而根据新版本与第二旧版本的发布时间的跨度得到衰减函数值f(VN+1-V2),根据新版本与第一旧版本的发布时间的跨度得到衰减函数值f(VN+1-V1)。那么,更新的热度信息h4为:h1*f(VN+1-V1)+h3*f(VN+1-V2)。服务器100可以将第一编译优化信息中的h1替换为更新的热度信息h4。
对于第二编译优化信息中的第四标识信息id2’,服务器100无法从第一编译优化信息中查找到相同的第三标识信息,则可以将第四标识信息id2’所在数据添加到第一编译优化信息中。
通过上述过程,第一编译优化信息被处理为目标编译优化信息,其包括如下两条数据:标识信息id1’、第一属性信息f1、热度信息h4;标识信息id2’、第二属性信息f2、热度信息h2。可以理解,第一编译优化信息中的标识信息均可视作第三标识信息。
本实施例中,在不同版本的安装包中相同或相似编译单元的标识信息不同的情况下,可以通过图4所示流程将第二编译优化信息融合到第一编译优化信息中。
请再次参照图4,详细地,服务器100可以先将第一编译优化信息和第二编译优化信息分别转换为对应的第一新版本描述文件和第二新版本描述文件。以第一编译优化信息中的一条数据为例,假设该条数据为上述的第三标识信息id1’、第一属性信息f1、热度信息h1。
则,服务器100根据第三标识信息id1’,可以从新版本安装包中查找具有该第三标识信息id1’的编译单元,获取该编译单元在新版本安装包的名称n1,从第一编译优化信息中提取该第三标识信息id1’所在数据中的第一属性信息f1、热度信息h1,然后,将提取的名称n1、第一属性信息f1和热度信息h1形成一条描述数据添加到生成的第一新版本描述文件中。
对第一编译优化信息中的每个第三标识信息执行上述流程,可以得到完整的第一新版本描述文件。以类似方式,服务器100可以将第二编译优化信息转换为第二新版本描述文件。
然后,服务器100可以将第二新版本描述文件融合到第一新版本描述文件中,形成目标新版本描述文件。下面通过一个例子对融合过程进行阐述。
示例性地,第一新版本描述文件中的一条数据包含:名称n1、第一属性信息f1和热度信息h1,第二新版本描述文件的一条数据包含:名称n1、第二属性信息f1、热度信息h3,另一条数据包含名称n2、第二属性信息f2、热度信息h2。在此情况下,服务器100对于第二新版本描述文件中的名称n1,从第一新版本描述文件查找到相同的名称n1,从而可以按照前文描述的方式,利用与跨度信息成反比例的衰减函数,分别确定热度信息h1和热度信息h3的权重,再根据确定的权重对热度信息h1和h3加权求和,得到更新的热度信息h4,并将第一新版本描述文件中的h1替换为更新的热度信息h4。
对于第二新版本描述文件中的名称n2,服务器100无法从第一新版本描述文件中查找到相同的名称,则将第二新版本描述文件中名称n2所在的数据添加到第一新版本描述文件中。通过前述流程,可以将第一新版本描述文件被处理为目标新版本描述文件,目标新版本描述文件包含如下数据:
名称n1、第一属性信息f1、热度信息h4;
名称n2、第二属性信息f2、热度信息h2。
得到目标新版本描述文件之后,服务器100可以根据目标新版本描述文件和新版本安装包得到新版本编译优化信息。详细地,针对目标新版本描述文件中的每个名称,可以从新版本安装包中查找到对应的标识信息,并将目标新版本描述文件中名称替换成对应的标识信息,即可将目标新版本描述文件处理为新版本的目标编译优化信息。
可选地,为了提高新版本编译优化信息的准确度,本实施例中,获得新版本目标编译优化信息之后,可以从中查找是否存在对应的热度信息小于设定阈值的标识信息,如果存在,则删除该标识信息及其对应的热度信息。换言之,服务器100可以从新版本目标编译优化信息中查找是否存在包含的热度信息小于所述设定阈值的数据,如果存在,则删除该条数据。
值得说明的是,如果是基于第一新版本描述文件和第二新版本描述文件进行融合的场景,可以对融合得到的目标新版本描述文件执行前述的删除步骤。详细地,获得目标新版本描述文件之后,可以从中查找是否存在包含的热度信息小于所述设定阈值的数据,如果存在,则删除该数据。再将处理后的目标新版本描述文件转换为新版本的目标编译优化信息。
后续过程中,服务器100如果收到任意一个用户终端针对应用程序的新版本安装包发起的下载请求,则可以将新版本安装包及新版本的目标编译优化信息发送给该用户终端,该用户终端可以在对新版本安装包进行安装的过程中,将目标编译优化信息中记录的编译单元对应的程序代码转换为机器代码,也可以在安装新版本安装包之后,将目标编译优化信息中记录的编译单元对应的程序代码转换为机器代码。如此,用户终端在后续过程中频繁地调用目标编译优化信息中记载的编译单元时,可以不必通过即时编译的方式来编译执行,提高了执行效率。
通过本实施例的方案,可以在需要时及时地为应用程序的新版本安装包生成新版本编译优化信息,用以指导基于该新版本安装包得到的新版本应用程序的编译优化。
可以理解,本实施例中,服务器100可以保存多个不同旧版本热点编译单元的标识信息。例如,服务器100保存了N(N≥3且N为正整数)个不同旧版本热点编译单元的标识信息,针对第i(i≥1且i为正整数)个旧版本热点编译单元的标识信息,可以按照图3所示步骤S210-步骤S240得到对应的新版本的编译优化信息i。如此,可以得到N个新版本的编译优化信息。
对于得到的N个新版本的编译优化信息,服务器100可以将其中两个编译优化信息,例如编译优化信息1和2,分别作为第一编译优化信息和第二编译优化信息,按照图3所示步骤S250进行融合,得到新版本的目标编译优化信息。然后,将得到的目标编译优化信息作为第一编译优化信息,将另外的新版本的编译优化信息3作为第二编译优化信息,按照步骤S250进行融合,得到新的目标编译优化信息。以此类推,可以实现对N个新版本的编译优化信息的融合。
基于上述流程,最终得到的新版本的编译优化信息中,目标编译单元X在新版本(即,版本N+1)中的热度信息ZN+1可以通过以下计算式表示:
其中,Zi表示目标编译单元X在第i个旧版本中的热度信息,f(VN+1-Vi)表示基于新版本与第i个旧版本的跨度信息得到的衰减函数值。
可以理解,本申请实施例的编译优化信息生成方法可以按照与图2所示类似的流程应用于图1中的用户终端。区别在于,用户终端是在从应用商店服务器获得新版本安装包之后,再执行图2所示流程,并且,当生成新版本的目标编译优化信息之后,可以直接基于该新版本的目标编译优化信息,对基于新版本安装包得到的新版本应用程序进行编译优化。
此外,应用于用户终端的编译优化信息生成方法中,各个旧版本热点编译单元的热度信息的获取方式与服务器100获取热度信息的方式有所区别。示例性地,用户终端可以通过如下流程来获取任意一个旧版本热点编译单元(如,前述的第一旧版本热点编译单元或第二旧版本热点编译单元)的热度信息:
对于每一旧版本热点编译单元,在该旧版本应用程序运行过程中,统计所述旧版本应用程序的各编译单元在预设时间段内的调用次数;获取所述旧版本热点编译单元在预设时间段内的调用次数,及所述旧版本应用程序的单个编译单元在所述预设时间段内的最大调用次数;计算所述旧版本热点编译单元的调用次数与所述最大调用次数的比值,得到所述旧版本热点编译单元的热度信息。
如此,获得的热度信息可以指示每个旧版本热点编译单元相较于同一旧版本中调用次数最大的编译单元的调用概率。与后续过程中,服务器100基于该热度信息对生成的目标编译优化信息中的编译单元的标识信息所进行删减相配合,可以使删减后的目标编译优化信息更为准确。
请参照图5,图5为本申请实施例提供的一种电子设备500的结构框图,该电子设备500可以是前文描述的服务器或用户终端。电子设备500可以包括如下部件:处理器501、存储器502、以及一个或多个程序,其中一个或多个程序可以被存储在存储器502中并被配置为由一个或多个处理器501执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
可以理解,图5所示的结构仅为示例,电子设备500还可以包括比图5所示更多、更少或完全不同的配置。例如,电子设备500还可以包括通信单元。又如,电子设备500为用户终端时,还可以包括显示单元、触控单元等,本实施例对此没有限制。
本申请实施例中,处理器501可以包括一个或者多个处理核。处理器501利用各种接口和线路连接整个电子设备500内的各个部分,通过运行或执行存储在存储器502内的指令、程序、代码集或指令集,以及调用存储在存储器502内的数据,执行电子设备500的各种功能和处理数据。
可选地,处理器502可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器501可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器501中,单独通过一块通信芯片进行实现。
存储器502可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器502可用于存储指令、程序、代码、代码集或指令集。存储器502可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备500在使用中所创建或者获取的数据(比如,生成的新版本编译优化信息)等。
请参照图6,其中示出了本申请实施例提供的一种编译优化信息生成装置600的结构框图,该装置600可以应用于图6所示的电子设备600中。从功能上划分,该装置600可以包括获取模块601、查找模块602、生成模块603。
其中,获取模块601用于获取应用程序的新版本安装包,以及获取所述应用程序的旧版本热点编译单元的标识信息。
查找模块602用于根据所述标识信息,从所述新版本安装包中查找与所述旧版本热点编译单元匹配的目标编译单元。
可选地,获取模块601还可以用于获取所述应用程序的所述旧版本安装包。在此情况下,查找模块602可以通过以下方式根据所述标识信息,从所述新版本安装包中查找与所述旧版本的热点编译单元匹配的目标编译单元:从所述旧版本安装包中查找具有所述标识信息的编译单元,获取查找到的编译单元的名称;根据所述名称,从所述新版本安装包中查找具有所述名称的编译单元,作为所述目标编译单元。
可选地,本实施例中,所述旧版本安装包包括第一旧版本安装包和第二旧版本安装包,所述旧版本热点编译单元包括具有第一标识信息的第一旧版本热点编译单元和具有第二标识信息的第二旧版本热点编译单元。对应地,查找模块602可以包括:查找子模块、生成子模块以及融合子模块。
其中,查找子模块用于根据所述第一标识信息,从所述新版本安装包中查找与所述第一旧版本热点编译单元匹配的目标编译单元,根据所述第二标识信息,从所述新版本安装包中查找与所述第二旧版本热点编译单元匹配的目标编译单元。
生成子模块用于根据查找到的第一目标编译单元,生成所述新版本的第一编译优化信息,根据查找到的第二目标编译单元,生成所述新版本的第二编译优化信息。
融合子模块用于将所述第二编译优化信息融合到所述第一编译优化信息中,得到所述新版本的目标编译优化信息。
可选地,本实施例中,所述第一编译优化信息包括:所述第一目标编译单元在所述新版本安装包中的第三标识信息,以及所述第一目标编译单元匹配的所述第一旧版本热点编译单元的热度信息;所述第二编译优化信息包括:所述第二目标编译单元在所述新版本安装包中的第四标识信息,以及所述第二目标编译单元匹配的所述第二旧版本热点编译单元的热度信息。
基于上述描述,融合子模块可以通过如下方式将所述第二编译优化信息融合到所述第一编译优化信息中:
针对所述第二编译优化信息中的每个第四标识信息,从所述第一编译优化信息中查找是否存在与所述第四标识信息匹配的目标第三标识信息;若不存在匹配的目标第三标识信息,将所述第四标识信息及所述第四标识信息对应的热度信息添加到所述第一编译优化信息中;若存在匹配的目标第三标识信息,根据所述第四标识信息对应的热度信息,对所述第一编译优化信息中与所述目标第三标识信息对应的热度信息进行更新。
其中,融合子模块根据所述第四标识信息对应的热度信息,对所述第一编译优化信息中与所述目标第三标识信息对应的热度信息进行更新的方式可以为:
根据所述第二旧版本与所述新版本的跨度信息,确定所述第四标识信息对应的热度信息的权重,以及根据所述第一旧版本与所述新版本的跨度信息,确定所述目标第三标识信息对应的热度信息的权重,其中,热度信息的权重与所述跨度信息成反比例关系;根据所确定的权重,对所述第四标识信息对应的热度信息以及所述目标第三标识信息对应的热度信息进行加权求和,得到更新后的热度信息。
可选地,本实施例中,装置600还可以包括删除模块,删除模块用于在融合子模块将所述第二编译优化信息融合到所述第一编译优化信息中,得到所述新版本的目标编译优化信息之后,从所述目标编译优化信息中,查找是否存在对应的热度信息小于设定阈值的标识信息;若存在,删除该标识信息及该标识信息对应的热度信息。
可选地,本实施例中,当电子设备500为服务器时,获取模块601还可以通过如下方式获取第一旧版本热点编译单元或第二旧版本热点编译单元的热度信息:
针对每一旧版本热点编译单元,获取来自不同用户终端的多个所述旧版本的编译优化信息;统计多个所述旧版本的编译优化信息中,包含所述旧版本热点编译单元的编译优化信息的数量;计算统计的数量与获取的编译优化信息的数量的比值,得到所述旧版本热点编译单元的热度信息。
可选地,本实施例中,当电子设备500为用户终端时,获取模块602可以通过如下方式获取第一旧版本热点编译单元或第二旧版本热点编译单元的热度信息:
针对每一旧版本热点编译单元,在所述旧版本应用程序运行过程中,统计所述旧版本应用程序的各编译单元在预设时间段内的调用次数;获取所述旧版本热点编译单元在预设时间段内的调用次数,及所述旧版本应用程序的单个编译单元在所述预设时间段内的最大调用次数;计算所述旧版本热点编译单元的调用次数与所述最大调用次数的比值,得到所述旧版本热点编译单元的热度信息。
生成模块603用于根据查找到的目标编译单元,生成所述新版本的编译优化信息。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所展示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参照图7,其中示出了本申请实施例提供的一种计算机可读存储介质700的结构框图。该计算机可读存储介质700中存储有程序代码710,所述程序代码1100可以被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质700可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质500包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质700具有执行上述方法中的任何方法步骤的程序代码710的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码710可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种编译优化信息生成方法,其特征在于,所述方法包括:
获取应用程序的新版本安装包;
获取所述应用程序的至少一个旧版本热点编译单元的标识信息,所述标识信息包括身份信息;
从所述新版本安装包中,查找具有所述至少一个旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述至少一个旧版本热点编译单元匹配的目标编译单元;
根据查找到的目标编译单元,生成新版本应用程序的编译优化信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取所述应用程序的所述至少一个旧版本安装包;
所述从所述新版本安装包中,查找具有所述至少一个旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述至少一个旧版本热点编译单元匹配的目标编译单元,包括:
针对每个所述旧版本热点编译单元的标识信息,从所述旧版本安装包中查找具有所述旧版本热点编译单元的身份信息的编译单元,获取查找到的编译单元的名称;
根据所述名称,从所述新版本安装包中查找具有所述名称的编译单元,作为所述目标编译单元。
3.根据权利要求1或2所述的方法,其特征在于,所述旧版本热点编译单元为多个,多个所述旧版本热点编译单元包括具有第一标识信息的第一旧版本热点编译单元和具有第二标识信息的第二旧版本热点编译单元,所述从所述新版本安装包中,查找具有所述至少一个旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述至少一个旧版本热点编译单元匹配的目标编译单元,包括:
根据所述第一标识信息,从所述新版本安装包中,查找具有第一旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述第一旧版本热点编译单元匹配的目标编译单元,根据所述第二标识信息,从所述新版本安装包中,查找具有第二旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述第二旧版本热点编译单元匹配的目标编译单元;
根据查找到的第一目标编译单元,生成所述新版本的第一编译优化信息,根据查找到的第二目标编译单元,生成所述新版本的第二编译优化信息;
将所述第二编译优化信息融合到所述第一编译优化信息中,得到所述新版本应用程序的目标编译优化信息。
4.根据权利要求3所述的方法,其特征在于,
所述第一编译优化信息包括:所述第一目标编译单元在所述新版本安装包中的第三标识信息,以及所述第一目标编译单元匹配的所述第一旧版本热点编译单元的热度信息;所述第二编译优化信息包括:所述第二目标编译单元在所述新版本安装包中的第四标识信息,以及所述第二目标编译单元匹配的所述第二旧版本热点编译单元的热度信息;
所述将所述第二编译优化信息融合到所述第一编译优化信息中,包括:
针对所述第二编译优化信息中的每个第四标识信息,从所述第一编译优化信息中查找是否存在与所述第四标识信息匹配的目标第三标识信息;
若不存在匹配的目标第三标识信息,将所述第四标识信息及所述第四标识信息对应的热度信息添加到所述第一编译优化信息中;
若存在匹配的目标第三标识信息,根据所述第四标识信息对应的热度信息,对所述第一编译优化信息中与所述目标第三标识信息对应的热度信息进行更新。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第四标识信息对应的热度信息,对所述第一编译优化信息中与所述目标第三标识信息对应的热度信息进行更新,包括:
根据所述第二旧版本与所述新版本的跨度信息,确定所述第四标识信息对应的热度信息的权重,以及根据所述第一旧版本与所述新版本的跨度信息,确定所述目标第三标识信息对应的热度信息的权重,其中,热度信息的权重与所述跨度信息成反比例关系;
根据所确定的权重,对所述第四标识信息对应的热度信息以及所述目标第三标识信息对应的热度信息进行加权求和,得到更新后的热度信息。
6.根据权利要求4或5所述的方法,其特征在于,在将所述第二编译优化信息融合到所述第一编译优化信息中,得到所述新版本的目标编译优化信息之后,还包括:
从所述目标编译优化信息中,查找是否存在对应的热度信息小于设定阈值的标识信息;
若存在,删除该标识信息及该标识信息对应的热度信息。
7.根据权利要求4或5所述的方法,其特征在于,所述方法应用于服务器,第一旧版本热点编译单元或第二旧版本热点编译单元的热度信息通过以下方式获取:
针对每一旧版本热点编译单元,获取来自不同用户终端的多个所述旧版本的编译优化信息;
统计多个所述旧版本的编译优化信息中,包含所述旧版本热点编译单元的编译优化信息的数量;
计算统计的数量与获取的编译优化信息的数量的比值,得到所述旧版本热点编译单元的热度信息。
8.根据权利要求4或5所述的方法,其特征在于,所述方法应用于用户终端,第一旧版本热点编译单元或第二旧版本热点编译单元的热度信息通过以下方式获取:
针对每一旧版本热点编译单元,在所述旧版本应用程序运行过程中,统计所述旧版本应用程序的各编译单元在预设时间段内的调用次数;
获取所述旧版本热点编译单元在预设时间段内的调用次数,及所述旧版本应用程序的单个编译单元在所述预设时间段内的最大调用次数;
计算所述旧版本热点编译单元的调用次数与所述最大调用次数的比值,得到所述旧版本热点编译单元的热度信息。
9.一种编译优化信息生成装置,其特征在于,所述装置包括:
获取模块,用于获取应用程序的新版本安装包,以及获取所述应用程序的至少一个旧版本热点编译单元的标识信息,所述标识信息包括身份信息;
查找模块,用于从所述新版本安装包中,查找具有所述至少一个旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述至少一个旧版本热点编译单元匹配的目标编译单元;
生成模块,用于根据查找到的目标编译单元,生成新版本应用程序的编译优化信息。
10.根据权利要求9所述的装置,其特征在于,所述旧版本热点编译单元为多个,多个所述旧版本热点编译单元包括具有第一标识信息的第一旧版本热点编译单元和具有第二标识信息的第二旧版本热点编译单元;所述查找模块包括:
查找子模块,用于根据所述第一标识信息,从所述新版本安装包中,查找具有所述至少一个旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述第一旧版本热点编译单元匹配的目标编译单元,根据所述第二标识信息,从所述新版本安装包中,查找具有第二旧版本热点编译单元的身份信息的编译单元,将查找到的编译单元作为与所述第二旧版本热点编译单元匹配的目标编译单元;
生成子模块,用于根据查找到的第一目标编译单元,生成所述新版本的第一编译优化信息,根据查找到的第二目标编译单元,生成所述新版本的第二编译优化信息;
融合子模块,用于将所述第二编译优化信息融合到所述第一编译优化信息中,得到所述新版本的目标编译优化信息。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-8中任意一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911087681.9A CN112783500B (zh) | 2019-11-08 | 2019-11-08 | 编译优化信息生成方法、装置及电子设备 |
PCT/CN2020/124067 WO2021088686A1 (zh) | 2019-11-08 | 2020-10-27 | 编译优化信息生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911087681.9A CN112783500B (zh) | 2019-11-08 | 2019-11-08 | 编译优化信息生成方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783500A CN112783500A (zh) | 2021-05-11 |
CN112783500B true CN112783500B (zh) | 2024-01-05 |
Family
ID=75748459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911087681.9A Active CN112783500B (zh) | 2019-11-08 | 2019-11-08 | 编译优化信息生成方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112783500B (zh) |
WO (1) | WO2021088686A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116088888B (zh) * | 2022-07-22 | 2023-10-31 | 荣耀终端有限公司 | 应用程序更新方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313639A (zh) * | 2016-12-06 | 2019-02-05 | 华为技术有限公司 | Dbms中进行查询执行的***和方法 |
CN109960507A (zh) * | 2017-12-14 | 2019-07-02 | 广东欧珀移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183019B2 (en) * | 2012-04-25 | 2015-11-10 | Empire Technology Development Llc | Certification for flexible resource demand applications |
CN106663025A (zh) * | 2014-03-31 | 2017-05-10 | 耶德托公司 | 用于混淆虚拟机上的应用程序的执行的方法、装置以及计算机可读介质 |
-
2019
- 2019-11-08 CN CN201911087681.9A patent/CN112783500B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/124067 patent/WO2021088686A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313639A (zh) * | 2016-12-06 | 2019-02-05 | 华为技术有限公司 | Dbms中进行查询执行的***和方法 |
CN109960507A (zh) * | 2017-12-14 | 2019-07-02 | 广东欧珀移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112783500A (zh) | 2021-05-11 |
WO2021088686A1 (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558748B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111061484B (zh) | 代码编译方法、装置、服务器、用户终端及可读介质 | |
CN111061483B (zh) | 编译优化方法、装置及电子设备 | |
CN112154420B (zh) | 自动智能云服务测试工具 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN110601819B (zh) | 一种对随机数的处理方法、区块链节点装置及存储介质 | |
CN114238948A (zh) | 一种应用程序检测方法、装置、电子设备及存储介质 | |
CN110928548B (zh) | 一种数据处理方法以及设备 | |
CN112948026A (zh) | 热点代码处理方法、装置、服务器、电子设备及存储介质 | |
CN112559088A (zh) | 配置文件的优化方法、装置、服务器以及存储介质 | |
CN113672224A (zh) | 小程序页面代码生成方法、装置及计算机设备 | |
CN112783500B (zh) | 编译优化信息生成方法、装置及电子设备 | |
CN109145589B (zh) | 应用程序获取方法及装置 | |
CN113608800A (zh) | 项目启动方法、装置、电子设备及存储介质 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN108845864A (zh) | 一种基于spring框架的JVM垃圾回收方法和装置 | |
CN107451050B (zh) | 函数获取方法和装置、服务器 | |
CN112783501A (zh) | 热点编译单元确定方法、装置及服务器 | |
CN114356712A (zh) | 数据处理方法、装置、设备、可读存储介质及程序产品 | |
CN112799690A (zh) | 信息处理方法、装置、设备和存储介质 | |
CN112540768A (zh) | 文件处理方法、装置、服务器、电子设备及存储介质 | |
CN113010172B (zh) | 配置文件的处理方法、装置、***及存储介质 | |
CN115705294B (zh) | 用于获取函数调用信息的方法、装置、电子设备和介质 | |
CN117883789B (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 |