CN113126995A - 热点代码处理方法、请求方法、装置及电子设备 - Google Patents

热点代码处理方法、请求方法、装置及电子设备 Download PDF

Info

Publication number
CN113126995A
CN113126995A CN201911408512.0A CN201911408512A CN113126995A CN 113126995 A CN113126995 A CN 113126995A CN 201911408512 A CN201911408512 A CN 201911408512A CN 113126995 A CN113126995 A CN 113126995A
Authority
CN
China
Prior art keywords
hotspot
hot spot
codes
code
target 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
Application number
CN201911408512.0A
Other languages
English (en)
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 CN201911408512.0A priority Critical patent/CN113126995A/zh
Priority to PCT/CN2020/137667 priority patent/WO2021135988A1/zh
Publication of CN113126995A publication Critical patent/CN113126995A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种热点代码处理方法、请求方法、装置及电子设备,可以从多个终端设备获取目标应用程序的热点代码文件,再从获得的多个热点代码文件中选择热点代码生成不同等级的热点配置文件。不同等级的热点配置文件包括的热点代码的数量不同,在接收到对目标应用程序的热点代码的获取请求时,可以选择其中一个等级的热点配置文件返回,从而使在目标应用程序使用时间较短未生成有足够的热点代码的情况下,也可以获取到数量合适的热点代码,提高目标应用程序的性能。

Description

热点代码处理方法、请求方法、装置及电子设备
技术领域
本申请涉及数据处理技术领域,更具体地,涉及一种热点代码处理方法、请求方法、装置及电子设备。
背景技术
在电子设备中,为了提高应用程序的执行效率以提高应用程序的性能,在运行时,虚拟机会将应用程序的代码中的热点代码编译成与本地平台相关的机器码。但是,对于应用程序而言,需要运行一段时间确定哪些代码为热点代码,在应用程序安装初期,无法通过热点代码的编译提升应用程序的性能。
发明内容
本申请提出了一种热点代码处理方法、请求方法、装置及电子设备,以改善上述问题。
第一方面,本申请实施例提供了一种热点代码处理方法,该方法包括:从多个电子设备中获取目标应用程序的热点代码文件,获得多个热点代码文件;根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,其中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数;在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
第二方面,本申请实施例提供了一种热点代码请求方法,该方法包括:获取终端设备对目标应用程序的使用信息;根据所述使用信息确定对所述目标应用程序的依赖指标,其中,所述使用信息表示对所述目标应用程序使用越多,对应所述使用信息的依赖指标表示的依赖程度越高;向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
第三方面,本申请实施例提供了一种热点代码处理装置,该装置包括:第一文件获取模块,用于从多个终端设备中获取目标应用程序的热点代码文件,获得多个热点代码文件;第二文件获取模块,用于根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,其中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数;请求响应模块,用于在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
第四方面,本申请实施例提供了一种热点代码请求装置,该装置包括:信息获取模块,用于获取终端设备对目标应用程序的使用信息;指标确定模块,用于根据所述使用信息确定对所述目标应用程序的依赖指标,其中,所述使用信息表示对所述目标应用程序使用越多,对应所述使用信息的依赖指标表示的依赖程度越高;请求模块,用于向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,与所述一个或多个处理器电连接;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如上述的方法。
第六方面,本申请实施列提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
本申请提出的热点代码处理方法、请求方法、装置及电子设备,可以从多个终端设备获取目标应用程序的热点代码文件,再从获得的多个热点代码文件中选择热点代码生成不同等级的热点配置文件。不同等级的热点配置文件包括的热点代码的数量不同,在接收到对目标应用程序的热点代码的获取请求时,可以选择其中一个等级的热点配置文件返回,从而使在目标应用程序使用时间较短未生成有足够的热点代码的情况下,也可以获取到数量合适的热点代码,提高目标应用程序的性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种JIT架构图。
图2示出了本申请实施例提供的服务器与终端设备的一种交互示意图。
图3示出了本申请实施例提供的服务器与终端设备的另一种交互示意图。
图4示出了本申请一个实施例提供的热点代码处理方法的流程图。
图5示出了本申请另一个实施例提供的热点代码处理方法的流程图。
图6示出了本申请一实施例提供的热点代码请求方法的流程图。
图7示出了本申请另一实施例提供的热点代码请求方法的流程图。
图8示出了本申请一实施例提供的热点代码处理装置的功能模块图。
图9示出了本申请一实施例提供的热点代码请求装置的功能模块图。
图10示出了本申请实施例提出的用于执行根据本申请实施例的电子设备的结构框图。
图11示出了本申请实施例提供的用于保存或者携带实现根据本申请实施例的热点代码处理方法的程序代码的存储介质。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在终端设备的虚拟机执行环境中,若某个代码块频繁运行,运行次数超过设定的次数,将该代码块确定为热点代码(hot code),将该热点代码记录下来并保存到热点代码文件(profile)。其中,可以理解的,该代码块可以是一个代码集合,或者是代码中的一个方法(method)。
为了提高热点代码的运行效率,可以将热点代码文件中的热点代码经由即时编译器(JIT,Just-In-Time Compiler)编译后获得odex文件或者经预编译(AOT,Ahead-of-Time)编译后得oat文件,热点代码编译后的odex文件以及oat文件中包含的是二进制机器码,可直接交由底层处理器(CPU,central processing unit)执行,当再次需要执行热点代码时,可以直接执行热点代码编译后的odex文件或者oat文件,提高了运行效率。
以如图1所示的安卓系统中的JIT架构为例,由于oat文件中包含的是程序运行的机器码,因此可以直接被安卓运行时(ART,Android-Running-Time)运行。而dex文件中,如果是非热点代码(cold code),是交由java解释器(Interpreter)执行,如果是热点代码,则交由JIT实时编译后存放到JIT代码缓存(JIT CODE CACHE)中,下次再次访问该热点代码,则可以直接从cache中执行对应的机器码。并且,将热点代码放入热点代码文件,当终端设备进入空闲(IDLE)且充电状态时,将热点代码文件中的该热点代码执行AOT过程进行编译生成oat文件。
由于代码块的运行次数超过设定的次数才确定为热点代码,则对于新安装的应用程序而言,需要在终端设备中运行一段时间,终端设备才能根据应用程序中代码的运行次数确定热点代码。
在一些实施例中,服务器可以预先搜集应用程序中的热点代码,终端设备可以获取到服务器搜集的热点代码,在未通过运行生成热点代码文件的情况下,可以确定应用程序的热点代码,可以将热点代码编译为odex文件以及oat文件,用于在运行时直接执行,提高应用程序的运行效率,从而目标应用程序的性能。
但是,通常的,若服务器给到终端设备的热点代码数量不合适,可能会增加终端设备对热点代码的编译时长,影响处理速度。
本申请实施例提出了一种热点代码处理方法、请求方法、装置及电子设备,如图2所示,服务器101与终端设备102网络连接。该终端设备可以是智能手机、平板电脑、电子书、智能穿戴设备等能够运行应用程序的电子设备。
服务器可以从已经产生有目标应用程序的热点代码文件的多个终端设备中获取热点代码文件,再从获得的热点代码文件选择热点代码生成多个不同等级的热点配置文件。在接收到对目标应用程序的热点代码的获取请求时,选取一个等级的热点配置文件返回。任意一个终端设备也可以根据对目标应用程序的使用情况向服务器请求热点代码。
在本申请实施例中,生成热点配置文件的服务器与返回热点配置文件到终端设备的可以是同一个服务器或不同的服务器。当是同一个服务器时,如图2所示,服务器101可以生成热点配置文件,并且在接收到终端设备102发送的热点代码的获取请求,向终端设备102返回热点配置文件。
当生成热点配置文件的服务器与返回热点配置文件到终端设备为不同的服务器,如图3所示,服务器1011可以生成不同等级的热点配置文件,服务器1012可以接收终端设备102发送的热点代码的获取请求,并且在接收到终端设备102发送的热点代码的获取请求,向服务器1011请求目标应用程序的热点代码。服务器1011在接收到服务器1012发送的对目标应用程序的热点代码的获取请求时,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回给服务器1012。服务器1012再将获取到的热点配置文件发送给请求热点代码的终端设备102。在图3中,各个终端设备102都可以和服务器1012以及服务器1011网络连接,图3中仅示出了部分网络连接示意。
下面将对本申请实施例进行详细的说明。
请参阅图4,示出了本申请实施例提供的一种热点代码处理方法,该方法可应用于服务器。具体的,该方法可以包括:
步骤S110:从多个终端设备中获取目标应用程序的热点代码文件,获得多个热点代码文件。
终端设备在对应用程序运行一段时间后,有些代码块的运行次数达到设定的次数,被确定为热点代码,因此,在终端设备中,可以存储有包括热点代码的热点代码文件。
服务器可以从终端设备端获取应用程序的热点代码,其中,服务器可以通过获取终端设备中的热点代码文件的方式获取终端设备中产生的应用程序的热点代码。
在本申请实施例中,服务器具体可以获取哪些应用程序的热点代码在本申请实施例中并不限定,可以根据需求获取一种或多种应用程序的热点代码。本申请实施例以获取一种应用程序的热点代码为例进行说明,定义该应用程序为目标应用程序。获取各种应用程序的热点代码的方式可以参见该目标应用程序的获取方式。
服务器可以从每个终端设备中获取到目标应用程序的热点代码文件,则从多个电子设备获取到多个热点代码文件。
步骤S120:根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,其中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
服务器获取到的多个热点代码文件中,每个热点代码文件包括一个或多个热点代码。可以从该多个热点代码文件中选择热点代码生成热点配置文件。
服务器可以根据获得的热点代码文件生成多个热点配置文件,各个热点配置文件中热点代码的数量不同。
其中,多个热点配置文件分别对应不同的等级,等级由高到低的热点配置文件,包括的热点代码数量依次递增。等级越高的热点配置文件,包括的热点代码的出现次数越多,低等级的热点配置文件可以包括高等级的热点配置文件中的热点代码。也就是说,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
步骤S130:在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
当服务器接收到对目标应用程序的热点代码获取请求时,可以从生成的该目标应用程序的多个热点配置文件中,选择一个等级的热点配置文件返回给请求方。
在本申请实施例中,服务器可以从多个终端设备中获取热点代码文件,并从获取到的热点代码文件中选择热点代码生成多个不同等级的热点配置文件,并选择一个等级的热点配置文件返回给对热点配置文件进行请求的请求方。在有终端设备获取到服务器返回的热点配置文件时,可以通过该热点配置文件中的热点代码提升应用程序的运行效率,从而提高应用程序的性能。
本申请提供了另一实施例,包括多个不同等级的热点配置文件的生成方式。具体的,请参见图5,该实施例包括:
步骤S210:从多个终端设备中获取目标应用程序的热点代码文件,获得多个热点代码文件。
服务器具体获取哪些终端设备的热点代码文件在本申请实施例中并不限定,其中,服务器可以获取热点代码文件的终端设备可以包括与服务器网络连接的各种终端设备中的全部或部分。若与服务器网络连接的终端设备中安装有目标应用程序,服务器则可以从该终端设备中获取目标应用程序的热点代码文件。
其中,在一种具体的实施方式中,服务器可以向终端设备发起热点代码文件获取请求,并在该热点代码文件获取请求中携带需要获取的目标应用程序的程序标识。终端设备可以根据该热点代码文件获取请求,向服务器返回程序标识对应的目标应用程序的热点代码文件,服务器获取到终端设备返回的热点代码文件。
在该实施方式中,服务器可以按照设置的频率更新目标应用程序的热点代码文件,也就是说,服务器可以每隔预设的时间,向安装有目标应用程序的全部或者部分终端设备发送热点代码文件获取请求,获取热点代码文件。服务器在发送热点代码文件获取请求时,若有终端设备未与服务器网络连接,则当该终端设备在与服务器网络连接时,可以向该终端设备发送热点代码文件获取请求。
在另一种实施方式中,服务器和终端设备可以预先协商,由终端设备定期将目标应用程序的热点代码文件发送到服务器,从而服务器可以获取到终端设备中发送的目标应用程序的热点代码文件。在该实施方式中,可选的,服务器与终端设备的协商,可以是与终端设备的厂商协商,在终端设备进行热点代码文件的发送设置;可选的,服务器与终端设备的协商,也可以是服务器与目标应用程序预先协商,当目标应用程序在终端设备安装,由目标应用程序安装于终端设备的客户端将热点代码文件发送到服务器。
可选的,服务器可以为每个终端设备建立一个热点代码数据库,与终端设备下载和使用的应用相关联,服务器将从终端设备获取到的热点代码文件存储在该终端设备的热点代码数据库中。
在服务器获取到的热点代码文件中,除了包括目标应用程序的热点代码,还可以包括其他与目标应用程序相关的信息,如目标应用程序的唯一身份信息,该唯一身份信息可以包括目标应用程序的名称、目标应用程序的版本名称以及目标应用程序的版本号等,以准确定位到热点代码文件的身份。
在本申请实施例中,不同身份信息的应用程序,可以认为是不同的应用程序。可选的,由于同一名称不同版本的应用程序,其程序代码可能有不同,可能产生的热点代码也不同。在本申请实施例中,将同一名称同一版本的应用程序作为相同应用程序进行处理,不同名称的应用程序作为不同的应用程序,相同名称不同版本的应用程序作为不同的应用程序,也就是说,将上线时程序代码相同的应用程序作为相同的应用程序。在多个终端设备中的目标应用程序,为同一版本同一名称的应用程序。
步骤S220:将所述多个热点代码文件中的各个不同热点代码按照在所述多个热点代码文件中的出现次数进行由高到低排序。
热点配置文件中热点代码数量越多,对该热点代码进行编译所需时间越长,因此,可以生成多个不同等级的热点配置文件,不同等级热点配置文件中热点代码的数量不同,在编译时所需时长不同,用于满足不同用户的需求。
由于热点代码的热度越高,代表该热点代码越可能是获取热点配置文件的终端设备中频繁运行的代码。等级越高的热点配置文件,热点代码的数量越少,但是,其包括的热点代码的热度可以越高,以使获取到高等级的热点配置文件的终端设备,虽然热点代码数量少,但是也能较好地改善使用性能。
其中,热点代码的高低,可以通过统计到的各个热点代码文件中,热点代码出现次数进行衡量,出现次数越高,表示使用该热点代码对应的功能的用户越多,热点代码热度越高。
在本申请实施例中,热点代码在多个热点代码文件中的出现次数,即包括该热点代码的热点代码文件数量。例如,若获取到的热点代码文件中,有5个热点代码文件都包括某热点代码c,则可以确定该热点代码c的出现次数为5。
将获取到的热点代码文件中的不同热点代码进行排序,排序依据为热点代码的出现次数,热点代码的出现次数越高,该热点代码的排序越靠前。
例如,服务器获取到目标应用程序的热点代码文件包括A、B、C、D以及E。热点代码文件A中包括热点代码c1,c2,c3以及c4;热点代码文件B中包括热点代码c1,c2,c4;热点代码文件C中包括热点代码c1以及c5;热点代码文件D中包括热点代码c1,c4以及c5。
则服务器获取到的多个热点代码文件中的不同热点代码包括c1,c2,c3,c4以及c5,其中,包括热点代码c1的热点代码文件的数量为4;包括热点代码c2的热点代码文件的数量为2;包括热点代码c3的热点代码文件的数量为1;包括热点代码c4的热点代码文件的数量为3;包括热点代码c5的热点代码文件的数量为2。热点代码包括c1,c2,c3,c4,c5的出现次数依次为4,2,1,3,2,对热点代码进行出现次数由高到低排序为c1,c4,c2,c5以及c3,其中c5和c2对应的热点文件数量相同,都为2,c5和c2的排序可以颠倒,本申请实施例以c1,c4,c2,c5以及c3的排序进行说明。
在一种具体的实施方式中,服务器获取各个热点代码文件中的热点代码并根据出现次数进行排序的方式可以是,热点代码文件中包括的是热点代码的代码标识,该代码标识可以是热点代码在目标应用程序的代码中的序号表示。
对于每个热点代码文件,提取其中的每个代码标识,保存至代码标识集合中。从目标应用程序的代码中,找出所有的代码块,形成代码块集合。根据代码标识集合中各热点代码的代码标识,从代码块集合中获取热点代码,形成对应热点代码文件的热点集合。
根据各个热点代码文件对应的热点集合,统计获取到的热点代码中每个热点代码的出现次数,根据出现次数进行由高到低排序,形成排序后的热点代码集合,用于后续梯度划分。
例如,热点代码是目标应用程序的dex文件中的方法method,热点代码的代码标识表示为method id,dex文件的method ids表中的序号作为热点代码的代码标识。从每个热点代码文件中提取每个method id,保存在hot_method_ids集合。获取目标应用程序的apk文件,提取其中的dex文件,获取其中所有的methods集合。根据hot_method_ids中methodid的序号,在methods中查找method,记为hot_methods。因此,可以获取到各个热点代码文件对应的hot_methods。
从多个hot_methods中统计每个method的出现次数,根据出现次数进行由高到低的排序,记为sorted_methods,用于后续梯度划分。
步骤S230:将排序后的热点代码依次划分为多个梯度,非排序最靠前的每个梯度包括前一梯度的所有热点代码以及与前一梯度不同的热点代码。
对排序后的热点代码进行梯度划分,在具有前一梯度的情况下,每一梯度都包括前一梯度的热点代码以及其他热点代码。其中,该前一梯度为包括的热点代码排序越靠前的梯度。
例如,在上述举例说明的排序c1,c4,c2,c5以及c3中,若划分为3个梯度,分别在c4处、c5处以及c3处划分,则划分的3个梯度包括的热点代码分别为c1,c4;c1,c4,c2,c5;c1,c4,c2,c5以及c3。从热度由高到低排序,依次定义为第一梯度、第二梯度、第三梯度,依次类推,则第一梯度包括c1以及c4,为最靠前的梯度;第二梯度包括热点代码c1,c4,c2以及c5,第二梯度包括了其前一梯度,即第一梯度,的热点代码c1以及c4,以及与前一梯度不同的热点代码c2以及c5;第三梯度包括热点代码c1,c4,c2,c5以及c3,第三梯度包括了其前一梯度,即第二梯度,的热点代码c1,c4,c2以及c5,还包括与前一梯度不同的热点代码c3。
在本申请实施例中,各个梯度划分多少热点代码并不限定。
在一种实施方式,数据量越大,需要编译的时间越长,因此,可以根据数据量划分梯度,以控制各个梯度对应的热点配置文件的数据量。
在该实施方式中,可以设置有梯度与数据量的对应关系,梯度由高到底,对应的数据量依次递增,梯度越高,包括的热点代码生成的热点配置文件等级越高。
可选的,可以设置有梯度的数量,对于最后一个梯度,其对应的数据量可以为所有,表示最后一个梯度包括所有的热点代码。
可选的,对于最后一个梯度生成的热点配置文件,也可以进行数据量控制,则最后一个梯度对应的数据量可以是控制的一个合适的数据量,使生成的最低等级的热点配置文件包括的热点代码尽可能覆盖到用户在使用目标应用程序时会经常运行到的代码块,又不至于过大。在本申请实施例中,最后一个梯度对应的数据量的具体数值并不做具体限定,例如,可以是,确定一个使用时长范围,获取使用时长在该使用时长范围内的目标应用程序产生的热点代码文件,并计算获得的热点代码文件的平均数据量,向上取整或向下取整作为最后一个梯度对应的数据量。例如,使用时长范围为3个月,获取使用时长为3个月的目标应用程序产生的热点代码文件4个,该4个热点代码文件中总共有不同的热点代码1200kb,热点代码文件的平均数据量为1200kb/4=300kb,以300kb作为最后一个梯度对应的数据量。
根据梯度与数据量的对应关系,划分每个梯度包括的热点代码的总数据量小于或等于所述梯度对应的数据量,且达到该梯度可达到的最大数据量。其中,数据量可以是一个字节数,单位可以是B,KB,MB,GB等。
在该实施方式中,可以从排序后的热点代码中,根据排序由高到低依次累计热点代码的数据量,当累计到热点代码的数据量大于当前梯度对应的数据量时,舍弃累计的热点代码中的最后一个,得到当前梯度包括的热点代码。
例如在前述举例说明中,对排序的热点代码c1,c4,c2,c5以及c3进行梯度划分,若第一梯度对应的数据量为n1,若热点代码c1和c4的总数据量小于n1,热点代码c1,c4以及c2的总数据量大于n1,c1和c4的总的数据量小于或等于n1,且达到第一梯度可达到的最大数据量,则划分c1,c4为第一梯度包括的热点代码。
在一种实施方式,热点配置文件中热点代码数量越多,需要编译的时间越长,因此,可以根据热点代码数量划分梯度,以控制各个梯度对应的热点配置文件中热点代码的数量。
在该实施方式中,可以设置有梯度与数量的对应关系,每个梯度对应的数量为该梯度对应的热点代码的数量。梯度由高到底,对应的数量依次递增。
可选的,可以设置有梯度的数量,对于最后一个梯度,其对应的热点代码数量可以为所有热点代码,表示最后一个梯度包括所有的热点代码。
可选的,对于最后一个梯度生成的热点配置文件,也可以进行热点代码数量控制,则最后一个梯度对应的数量可以是控制的一个合适的数量,使生成的最低等级的热点配置文件包括的热点代码尽可能覆盖到用户在使用目标应用程序时会经常运行到的代码块,又不至于过大。在本申请实施例中,最后一个梯度对应的热点代码的数量的具体数值并不做具体限定,例如,可以是,确定一个使用时长范围,获取使用时长在该使用时长范围内的目标应用程序产生的热点代码文件,并计算获得的热点代码文件中热点代码的平均数量,向上取整或向下取整作为最后一个梯度对应的热点代码的数量。例如,使用时长范围为3个月,获取使用时长为3个月的目标应用程序产生的热点代码文件4个,该4个热点代码文件中热点代码的数量分别为5,6,5,包括重复的热点代码,总共有热点代码16个,平均热点代码数量为16/4=4,以4作为最后一个梯度对应的数量。
根据梯度与数量的对应关系,划分每个梯度包括的热点代码的数量小于或等于该梯度对应的数量。
例如在前述举例说明中,对排序的热点代码c1,c4,c2,c5以及c3进行梯度划分,若第一梯度对应的数量为2,第二梯度对应的数量为4,第三梯度对应的数量为所有,则划分的第一梯度的热点代码包括c1以及c4,第二梯度的热点代码包括c1,c4,c2以及c5,第三梯度的热点代码包括c1,c4,c2,c5以及c3。
步骤S240:将每个梯度的热点代码生成一个热点配置文件,其中,梯度的排序越靠前,对应生成的热点配置文件等级越高。
生成多个不同等级的热点配置文件时,每个梯度包括的热点代码生成一个热点配置文件。因此,在本申请实施例中生成的读过不同等级的热点配置文件中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
例如在前述举例说明中,如第一梯度的热点代码包括c1以及c4,第二梯度的热点代码包括c1,c4,c2以及c5,第三梯度的热点代码包括c1,c4,c2,c5以及c3,则选择热点代码c1以及c4生成第一等级的热点配置文件,选择热点代码c1,c4,c2以及c5生成第二等级的热点配置文件,选择c1,c4,c2,c5以及c3生成第三等级的热点配置文件。第一等级、第二等级以及第三等级的等级高度依次递减。
可选的,在本申请实施例中,生成的各热点配置文件可以仅包括选择的热点代码,也可以包括其他信息,如目标应用程序的唯一身份信息。
当然,在本申请实施例中,也可以按照在多个热点代码的出现次数进行由低到高进行排序。在多个热点代码的出现次数进行由低到高进行排序时,生成热点配置文件的方式可以参照热点代码由高到低进行排序,在此不做赘述。
步骤S250:在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
服务器接收到对所述目标应用程序的热点代码的获取请求时,根据获取请求选择热点配置文件返回给请求方。
可以理解的,在本申请实施例中,服务器可以生成不同应用程序的热点配置文件。服务器在接收到热点代码获取请求时,可以根据热点代码获取请求携带的应用程序唯一身份信息,确定将哪一应用程序的热点配置文件返回到请求方。
在一些实施方式中,若如图2所示,终端设备102向生成热点配置文件的服务器101请求目标应用程序的热点配置文件,服务器101可以将选择该目标应用程序的热点配置文件返回到该终端设备。
可选的,终端设备在安装应用程序时,该应用程序未在终端设备中运行,未生成有热点代码,不能很好地提高应用程序的执行效率。因此,终端设备在向服务器发起应用程序的安装请求时,可以在安装请求中携带请求获取热点配置文件的信息,表示终端设备需要获取该应用程序的热点配置文件。服务器在接收到目标终端设备对所述目标应用程序的安装请求时,若所述安装请求中携带有请求获取热点配置文件的信息,则将目标应用程序的安装包以及选择的目标应用程序的热点配置文件发送给所述终端设备。若所述安装请求中未携带有请求获取热点配置文件的信息,表示终端设备不需要获取目标应用程序的热点配置文件,则将所述目标应用程序的安装包发送给所述终端设备。
可选的,目标终端设备也可以向服务器直接发起对目标应用程序的热点代码的获取请求,表示终端设备需要获取该应用程序的热点配置文件。服务器在接收到目标终端设备对所述目标应用程序的热点代码的获取请求时,选择目标应用程序的热点配置文件发送给所述终端设备。
在一些实施方式中,如图3所示,也可以是其他服务器发起对所述目标应用程序的热点代码的获取请求。即生成热点配置文件的服务器与将热点配置文件发送到目标终端设备的可以为不同的服务器。如图3所示,生成热点配置文件的为服务器1011,终端设备102向服务器1012请求目标应用程序的热点配置文件,热点配置文件在服务器1011生成,服务器1012向服务器1011请求获取热点配置文件。服务器1011选择目标应用程序的热点配置文件发送到服务器1012,服务器1012在从服务器1011获取到热点配置文件后发送给终端设备102。在本申请实施例中,若无特殊说明,描述的服务器为生成热点配置文件的服务器1011或服务器101。
可选的,服务器1012可以是软件商店,可以接收到目标终端设备102发起应用程序的安装请求时,根据在安装请求中携带的获取热点配置文件的信息,服务器1012向服务器1011发起对所述目标应用程序的热点代码的获取请求。服务器1012还将目标应用程序的安装包返回给目标终端设备。
在本申请实施例中,在热点代码的获取请求中,可以携带有选择热点配置文件的指示信息,生成热点配置文件的服务器可以根据热点代码的获取请求中的指示信息选择热点配置文件。在本申请实施例中,该指示信息可以是由目标终端设备确定,并发送到生成热点配置文件的服务器。例如图2所示,由终端设备发送到服务器101,或者如图3所示,由终端设备发送到服务器1012,服务器1012将该指示信息发送到服务器1011。
在一种实施方式中,该指示信息可以是对所述目标应用程序的依赖指标。根据依赖指标与等级的对应关系,选择接收到的依赖指标对应的等级的热点配置文件返回,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低。
在该实施方式中,依赖指标表示的依赖程度越高,说明对目标终端设备的用户对该目标应用程序的依赖程度越高,用户对该目标应用程序的使用越频繁或者使用时间越长。
而用户对目标应用程序的依赖程度越高,则可能涉及到目标应用程序的功能越多,对目标应用程序的各个功能对应的代码运行越多。因此,对目标应用程序依赖程度越高,可以需要越多的热点代码,以使越多的代码可以被预先编译,使目标应用程序的性能更好,使用更流畅。
而对于对目标应用程序依赖程度低的用户,可能主要使用目标应用程序的基本功能或者核心功能,大多数功能可能并不会使用。而对于目标应用程序的基本功能或者核心功能,其对应的热点代码通常热度更高,因此,对于对目标应用程序依赖程度低的用户,可以获取较少但热度较高的热点代码,既满足用户的使用需求,又能降低编译时间。
在本申请实施例中,依赖指标的具体表现形式并不限定,在服务器接收到依赖指标时,能根据该依赖指标以及依赖指标与等级的对应关系,确定接收到的依赖指标对应的等级,从而将该依赖指标对应等级的热点配置文件返回。例如,依赖指标通过百分制量化,用数值0-100表示,数值越大,表示对目标应用程序的依赖程度越高,对应的等级越低。则可以将百分制划分为多份,分别对应不同等级。如服务器中包括5个等级的热点配置文件,依赖指标0-20对应第一等级,21-40对应第二等级,41-60对应第三等级,61-80对应第四等级,81-100对应第五等级,若服务器接收到目标终端设备对所述目标应用程序的依赖指标为55,在41-60的区间内,可以确定该依赖指标对应的为第三等级,将第三等级的热点配置文件返回。
在另一种实施方式中,该指示信息可以是目标数据量,表示目标终端设备获取数据量不超过该目标数据量的热点配置文件。服务器从多个不同等级的热点配置文件中选择数据量小于或等于该目标数据量的热点配置文件,选择的热点配置文件的数据量,大于其他数据量小于该目标数据量的热点配置文件。
在该实施方式中,目标终端设备可以根据自身存储空间剩余大小确定该目标数据量的值。例如,若目标终端设备的存储空间剩余量较小,难以支持较大的热点配置文件的编译和存储,可以请求一个数据量较小的热点配置文件。例如,可以将目标数据量设置为存储空间剩余量的一个合适的百分比,该百分比可以由用户或者相关开发人员设置。
在该实施方式中,目标终端设备也可以根据依赖指标确定目标数据量。例如可以根据预设公式进行计算;或者根据依赖指标与数据量的对应关系,确定目标终端设备对目标应用程序的依赖指标对应的数据量,作为目标数据量。
在本申请实施例中,将热点代码按照热度排序并划分梯度,根据梯度生成包括热点代码数量不同以及热度不同的不同等级热点配置文件。根据对热点配置文件的获取请求中的指示信息,从不同等级的热点配置文件选择一个等级的热点配置文件返回,以使请求热点配置文件的目标终端设备可以获取到平衡需求以及编译时间的热点配置文件。
本申请还提供了一实施例。在该实施例中,目标终端设备可以根据对目标应用程序的使用信息生成依赖指标,以获取到与依赖指标相对应的热点配置文件。请参见图6,该方法包括:
步骤S310:获取终端设备对目标应用程序的使用信息。
步骤S320:根据所述使用信息确定对所述目标应用程序的依赖指标,其中,所述使用信息表示对所述目标应用程序使用越多,对应所述使用信息的依赖指标表示的依赖程度越高。
终端设备可以获取自身对目标应用程序的使用信息,该使用信息表示了在终端设备对目标应用程序的使用情况,可以衡量对目标应用程序的依赖程度。若使用信息表示对目标应用程序的使用越多,则可以确定对目标应用程序的依赖程度越高。因此,可以根据使用信息确定目标应用程序的依赖指标。该终端设备为需要获取热点配置文件的目标终端设备。
步骤S330:向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件。其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
目标终端设备向与其网络连接的服务器发送对目标应用程序的热点代码的获取请求。如图2所示,目标终端设备可以直接将该获取请求发送到服务器101;如图3所示,目标终端设备可以将该获取请求发送到服务器1012,服务器1012再发送携带依赖指标的获取请求到服务器1011。
本申请实施例中,目标终端设备根据使用信息获取依赖指标,对目标应用程序的依赖程度越低,获取等级越高的热点配置文件,包括的热点代码热度越高,热点代码越少;对目标应用程序的依赖程度越高,获取等级越低的热点配置文件,包括的热点代码越多。从而,目标终端设备可以获取到对应自身实际使用需求的热点配置文件,平滑热点代码数量、热度以及编译时间。
本申请还提供了一实施例。在该实施例中,包括对依赖指标的确定。请参见图7,该方法包括:
步骤S410:获取终端设备对目标应用程序的使用信息。
步骤S420:根据使用信息与依赖指标的对应关系,选择终端设备对目标应用程序的使用信息对应的依赖指标,作为对所述目标应用程序的依赖指标。
在本申请实施例中,使用信息和依赖指标之间可以设置有对应关系,可以根据该对应关系,确定终端设备对目标应用程序的当前的使用信息所对应的依赖指标。
可选的,在本申请实施例中,若该电子设备是首次下载该目标应用程序,并未对该目标应用程序的使用,未生成有使用信息,则依赖指标可以设置为默认值,如默认为对应最高等级的依赖指标。
可选的,在本申请实施例中,也可以是,若目标终端设备是首次下载该目标应用程序,但是该目标终端设备登录的用户帐号对该目标应用程序进行过使用并生成对应的使用信息,则可以根据该用户帐号对该目标应用程序的使用信息确定依赖指标。
可选的,若目标终端设备是首次下载该目标应用程序,目标终端设备登录的用户帐号也未生成有对目标应用程序的使用信息,则依赖指标可以设置为默认值,如默认为对应最高等级的依赖指标。
在本申请实施例中,根据使用信息确定依赖指标,该使用信息可以是在该目标终端设备使用目标应用程序生成的,也可以是在该目标终端设备登录的用户账号使用目标应用程序生成的。可以理解的,若使用信息是在目标终端设备使用目标应用程序生成,目标终端设备可以是在卸载了目标应用程序后,重新下载目标应用程序时请求热点配置文件;也可以是在升级应用程序时,请求升级后的目标应用程序的热点配置文件。在请求升级后的目标应用程序的热点配置文件时,以升级前的使用信息作为升级后的目标应用程序的使用信息。
在一种实施方式中,对目标应用程序的使用次数越多,表明用户对目标应用程序的依赖程度越高,使用信息可以包括对目标应用程序的使用次数。其中,该使用次数的确定,可以是,用户将目标应用程序由后台或者由关闭切换到前台作为一次使用,或者是,由关闭到开启作为一次使用,在本申请实施例中并不限定。
在该实施方式中,可以设置有使用次数和依赖指标的对应关系,表示依赖程度越高的依赖指标,对应的使用次数越多。
在一种实施方式,对目标应用程序的使用时间越长,表明用户对目标应用程序的依赖程度越高,使用信息可以包括对目标应用程序的使用时长。其中,该使用时长的确定,可以是,用户目标应用程序在前台的运行时长,或者是,目标应用程序开启的时长,在本申请实施例中并不限定。
在该实施方式中,可以设置有使用时长和依赖指标的对应关系,表示依赖程度越高的依赖指标,对应的使用时长越多。该对应关系的表示形式并不限定,例如表格对应,公式对应。或者,也可以通过预先训练的算法模型进行对应,即在该算法模型中,对于输入的不同使用信息,可以输出相应的依赖指标。
在本申请实施例中,使用信息具体包括哪些并不限定,例如,还可以包括使用目标应用程序的功能数量,使用目标应用程序的功能越多,表示对目标应用程序的依赖程度越高。在功能数量与依赖指标的对应关系中,表示越高依赖程度的依赖指标,对应的功能数量越多。其中,功能的划分在本申请实施例中并不限定,可以由开发人员预先设置,例如在即时聊天软件中,通过聊天框聊天是一种功能,进行视频聊天、语音聊天、语音转文字输入、查看用户动态等设置为不同的功能。
在本申请实施例中,不同维度反应的使用信息,可以择一选择确定依赖指标,也可以彼此结合确定依赖指标,在本申请实施例中并不限定。
可选的,在本申请实施例中,依赖指标表示的依赖程度越高,从服务器请求到的热点配置文件的等级越低,数据量越大。但是,目标终端设备的性能可能不足以支持过大的热点配置文件的运行,或者过大的热点配置文件会影响目标终端设备的性能。因此,在本申请实施例中,还可以根据目标终端设备的性能参数,对根据使用信息确定的依赖指标进行调节。
其中,若性能参数所表示的性能较好,如大于或等于预设性能标准,则可以不更改根据使用信息确定的依赖指标。
若性能参数所表示的性能较差,如小于或等于预设性能标准,则可以将依赖指标调整到对应依赖程度更低的状态,以获取等级更高的热点配置文件。例如,以分值表示依赖指标,如百分制表示。获取目标终端设备的性能参数,若所述终端设备的性能参数所表示的性能小于预设性能标准,将所述依赖指标减小预设值。
可选的,表示不同性能的性能参数,对依赖指标的调整可以有不同。其中,性能参数表示目标终端设备性能越差,可以将依赖指标往依赖程度越低的方向调整。
具体的,可以将不同性能参数进行量化,将依赖指标量化。量化后的性能参数可以对应有依赖指标的调整值,量化后的依赖指标调低该调整值对应的值。
例如,以目标终端设备的存储空间剩余量表示性能参数,以一个存储量表示预设性能标准,以百分制表示依赖指标。存储空间剩余量大于预设性能标准,可以不对依赖指标进行调整;若存储空间剩余量小于预设性能标准,存储空间剩余量越少,对应的调整值越大,依赖指标降低该调整值。其中,不同的存储空间剩余量可以对应有相应的调整值。
又如,以目标终端设备的处理器性能表示性能参数,可以通过处理器的处理速度对处理器性能进行量化,以一个预设处理速度作为预设性能标准。以百分制表示依赖指标。处理器的处理速度大于预设处理速度,可以不对依赖指标进行调整;若处理器的处理速度小于预设处理速度,处理器的处理速度越小,对应的调整值越大,依赖指标降低该调整值。其中,不同的处理速度可以对应有相应的调整值。
在本申请实施例中,性能参数具体包括哪些并不限定,不同的性能参数可以选择性地作为依赖指标的调整标准,也可以综合考量对依赖指标进行调整。
步骤S430:向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件。
在本申请实施例中,终端设备可以在下载目标应用程序的安装包时,向所述向服务器发送对所述目标应用程序的热点代码的获取请求。该下载可以是更新时的下载,也可以是首次安装或者重新安装时的下载。
在一种实施方式中,如图2所示,目标终端设备可以向服务器101请求下载安装包,并发送对所述目标应用程序的热点代码的获取请求。目标终端设备从服务器101接收返回的热点配置文件。
在一种实施方式中,如图3所示,目标设备终端设备可以向服务器1012请求下载安装包,并发送对所述目标应用程序的热点代码的获取请求。服务器1012从服务器1011获取热点配置文件,目标终端设备从服务器1012接收返回的热点配置文件。
在一种实施方式中,如图3所示,目标设备终端设备可以向服务器1012请求下载安装包,并向服务器1011发送对所述目标应用程序的热点代码的获取请求。从服务器1012获取安装包,从服务器1011获取热点配置文件。
目标终端设备可以接收到返回的热点配置文件,可以对热点配置文件进行编译,例如通过AOT编译,将编译后的文件存储。
可选的,可以在应用程序安装过程中进行热点代码的编译,不同等级的热点配置文件,编译时长不同。
本申请实施例中,定义向服务器发送热点代码获取请求的终端设备为目标终端设备。目标终端设备可以根据使用信息和依赖指标的对应关系,确定对目标应用程序的依赖指标。从而,可以在发送对目标应用程序的热点代码的获取请求时携带依赖指标,以使服务器返回适合该依赖指标对应的依赖程度的热点配置文件。在目标终端设备中安装该目标应用程序时,可以使用获得的热点配置文件中的热点代码作为该目标应用程序的热点代码,提高目标应用程序的运行效率,从而提高了目标应用程序的性能。
本申请实施例还提供了一种热点代码处理装置500,可以应用于服务器。请参见图8,该装置500包括:第一文件获取模块510,用于从多个终端设备中获取目标应用程序的热点代码文件,获得多个热点代码文件;第二文件获取模块520,用于根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,其中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数;请求响应模块530,用于在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
可选的,第二文件获取模块520可以包括排序单元,用于将所述多个热点代码文件中的各个不同热点代码按照在所述多个热点代码文件中的出现次数进行由高到低排序;梯度划分单元,用于将排序后的热点代码依次划分为多个梯度,非排序最靠前的每个梯度包括前一梯度的所有热点代码以及与前一梯度不同的热点代码;文件生成单元,用于将每个梯度的热点代码生成一个热点配置文件,其中,梯度的排序越靠前,对应生成的热点配置文件等级越高。
可选的,梯度划分单元可以用于根据梯度与数据量的对应关系,划分每个梯度包括的热点代码的总数据量小于或等于所述梯度对应的数据量。
可选的,获取请求中可以携带有对所述目标应用程序的依赖指标。请求响应模块530可以用于根据依赖指标与等级的对应关系,选择接收到的依赖指标对应的等级的热点配置文件返回,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低。
本申请实施例还提供了一种热点代码请求装置600,可以应用于终端设备。请参见图9,装置600可以包括:信息获取模块610,用于获取终端设备对目标应用程序的使用信息;指标确定模块620,用于根据所述使用信息确定对所述目标应用程序的依赖指标,其中,所述使用信息表示对所述目标应用程序使用越多,对应所述使用信息的依赖指标表示的依赖程度越高;请求模块630,用于向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
可选的,指标确定模块620用于根据使用信息与依赖指标的对应关系,选择终端设备对目标应用程序的使用信息对应的依赖指标,作为对所述目标应用程序的依赖指标。
可选的,所述使用信息可以包括对所述目标应用程序的使用次数,或对所述目标应用程序的使用时长。
可选的,依赖指标可以为分值。该装置还可以包括指标调整模块,用于获取所述终端设备的性能参数;若所述终端设备的性能参数所表示的性能小于预设性能标准,将所述依赖指标减小预设值。
可选的,请求模块630可以用于在下载所述目标应用程序的安装包时,向所述向服务器发送对所述目标应用程序的热点代码的获取请求。
在本申请实施例中,可以由终端设备主动发起请求热点配置文件的方式,即由终端设备确定依赖指标,以请求合适大小的热点配置文件,避免了热点配置文件千篇一律的分发,在尽可能给用户造成小的影响同时,又尽可能给用户带来更合理的优化体验。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。另外,方法实施例中的各种实施方式,都可以对应有相应的模块,在本申请实施例中不再一一赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图10,其示出了本申请实施例提供的一种电子设备700的结构框图。该电子设备可以是服务器,也可以是终端设备。
本申请中的电子设备700可以包括一个或多个如下部件:处理器710、存储器720,以及一个或多个程序,其中一个或多个程序可以被存储在存储器720中并被配置为由一个或多个处理器710执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器710可以包括一个或者多个处理核。处理器710利用各种接口和线路连接整个电子设备700内的各个部分,通过运行或执行存储在存储器720内的指令、程序、代码集或指令集,以及调用存储在存储器720内的数据,执行电子设备700的各种功能和处理数据。可选地,处理器710可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器710可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块通信芯片进行实现。
存储器720可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器720可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备700在使用中所创建的数据等。
请参考图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种热点代码处理方法,其特征在于,所述方法包括:
从多个终端设备中获取目标应用程序的热点代码文件,获得多个热点代码文件;
根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,其中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数;
在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,包括:
将所述多个热点代码文件中的各个不同热点代码按照在所述多个热点代码文件中的出现次数进行由高到低排序;
将排序后的热点代码依次划分为多个梯度,非排序最靠前的每个梯度包括前一梯度的所有热点代码以及与前一梯度不同的热点代码;
将每个梯度的热点代码生成一个热点配置文件,其中,梯度的排序越靠前,对应生成的热点配置文件等级越高。
3.根据权利要求2所述的方法,其特征在于,所述将排序后的热点代码依次划分为多个梯度,包括:
根据梯度与数据量的对应关系,划分每个梯度包括的热点代码的总数据量小于或等于所述梯度对应的数据量。
4.根据权利要求1所述的方法,其特征在于,所述获取请求中携带有对所述目标应用程序的依赖指标;
所述根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回,包括:
根据依赖指标与等级的对应关系,选择接收到的依赖指标对应的等级的热点配置文件返回,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低。
5.一种热点代码请求方法,其特征在于,所述方法包括:
获取终端设备对目标应用程序的使用信息;
根据所述使用信息确定对所述目标应用程序的依赖指标,其中,所述使用信息表示对所述目标应用程序使用越多,对应所述使用信息的依赖指标表示的依赖程度越高;
向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
6.根据权利要求5所述的方法,其特征在于,根据所述使用信息确定对所述目标应用程序的依赖指标,包括:
根据使用信息与依赖指标的对应关系,选择终端设备对目标应用程序的使用信息对应的依赖指标,作为对所述目标应用程序的依赖指标。
7.根据权利要求5或6所述的方法,其特征在于,所述使用信息包括对所述目标应用程序的使用次数,或对所述目标应用程序的使用时长。
8.根据权利要求5所述的方法,其特征在于,所述依赖指标为分值,所述向服务器发送对所述目标应用程序的热点代码的获取请求之前,所述方法还包括:
获取所述终端设备的性能参数;
若所述终端设备的性能参数所表示的性能小于预设性能标准,将所述依赖指标减小预设值。
9.根据权利要求5所述的方法,其特征在于,在下载所述目标应用程序的安装包时,向所述向服务器发送对所述目标应用程序的热点代码的获取请求。
10.一种热点代码处理装置,其特征在于,所述装置包括:
第一文件获取模块,用于从多个终端设备中获取目标应用程序的热点代码文件,获得多个热点代码文件;
第二文件获取模块,用于根据所述多个热点代码文件中的热点代码,生成多个不同等级的热点配置文件,其中,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数;
请求响应模块,用于在接收到对所述目标应用程序的热点代码的获取请求时,根据所述获取请求,从所述多个不同等级的热点配置文件中选择一个等级的热点配置文件返回。
11.一种热点代码请求装置,其特征在于,所述装置包括:
信息获取模块,用于获取终端设备对目标应用程序的使用信息;
指标确定模块,用于根据所述使用信息确定对所述目标应用程序的依赖指标,其中,所述使用信息表示对所述目标应用程序使用越多,对应所述使用信息的依赖指标表示的依赖程度越高;
请求模块,用于向服务器发送对所述目标应用程序的热点代码的获取请求,所述获取请求中携带所述依赖指标,用于向所述服务器请求所述依赖指标对应的等级的热点配置文件,其中,依赖指标表示依赖程度越高,选择的热点配置文件的等级越低,非最高等级的热点配置文件包括第一部分热点代码以及第二部分热点代码,第一部分热点代码与高一等级的热点配置文件中的热点代码相同,第二部分热点代码在所述多个热点代码文件中的出现次数低于或等于第一部分热点代码在所述多个热点代码文件中的出现次数。
12.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,与所述一个或多个处理器电连接;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1至9任一项所述的方法。
13.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1至9任一项所述的方法。
CN201911408512.0A 2019-12-31 2019-12-31 热点代码处理方法、请求方法、装置及电子设备 Pending CN113126995A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911408512.0A CN113126995A (zh) 2019-12-31 2019-12-31 热点代码处理方法、请求方法、装置及电子设备
PCT/CN2020/137667 WO2021135988A1 (zh) 2019-12-31 2020-12-18 热点代码处理方法、请求方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911408512.0A CN113126995A (zh) 2019-12-31 2019-12-31 热点代码处理方法、请求方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN113126995A true CN113126995A (zh) 2021-07-16

Family

ID=76687335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911408512.0A Pending CN113126995A (zh) 2019-12-31 2019-12-31 热点代码处理方法、请求方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN113126995A (zh)
WO (1) WO2021135988A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589729A (zh) * 2015-12-28 2016-05-18 北京锐安科技有限公司 一种基于嵌入式虚拟机的动态编译的方法及装置
CN106502876A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种热点函数确定的方法及相关设备
CN106775893A (zh) * 2016-12-30 2017-05-31 北京小米移动软件有限公司 对程序预编译的方法及装置
US20180225096A1 (en) * 2017-02-06 2018-08-09 International Business Machines Corporation Reconstructing a High Level Compilable Program from an Instruction Trace
CN109960507A (zh) * 2017-12-14 2019-07-02 广东欧珀移动通信有限公司 编译优化方法、装置、存储介质、智能终端及服务器
CN110609689A (zh) * 2019-08-23 2019-12-24 北京安云世纪科技有限公司 一种应用的安装运行方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589729A (zh) * 2015-12-28 2016-05-18 北京锐安科技有限公司 一种基于嵌入式虚拟机的动态编译的方法及装置
CN106502876A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种热点函数确定的方法及相关设备
CN106775893A (zh) * 2016-12-30 2017-05-31 北京小米移动软件有限公司 对程序预编译的方法及装置
US20180225096A1 (en) * 2017-02-06 2018-08-09 International Business Machines Corporation Reconstructing a High Level Compilable Program from an Instruction Trace
CN109960507A (zh) * 2017-12-14 2019-07-02 广东欧珀移动通信有限公司 编译优化方法、装置、存储介质、智能终端及服务器
CN110609689A (zh) * 2019-08-23 2019-12-24 北京安云世纪科技有限公司 一种应用的安装运行方法及装置

Also Published As

Publication number Publication date
WO2021135988A1 (zh) 2021-07-08

Similar Documents

Publication Publication Date Title
CN111061484B (zh) 代码编译方法、装置、服务器、用户终端及可读介质
CN110941424B (zh) 编译参数优化方法、装置及电子设备
CN110888658B (zh) 应用程序中功能模块的动态化方法、装置及存储介质
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
CN111078318A (zh) 配置文件的处理方法、装置、系统及存储介质
CN110673948B (zh) 一种云游戏资源调度方法、服务器及存储介质
CN111143039B (zh) 一种虚拟机的调度方法、装置及计算机存储介质
CN112506584B (zh) 资源文件加载方法、装置、设备、存储介质以及产品
WO2021135947A1 (zh) 热点代码处理方法、装置、电子设备及存储介质
CN109213774B (zh) 数据的存储方法及装置、存储介质、终端
CN112087487A (zh) 模型训练任务的调度方法、装置、电子设备及存储介质
CN113485833B (zh) 资源预测方法和装置
EP3748493B1 (en) Method and device for downloading installation-free application
CN113126995A (zh) 热点代码处理方法、请求方法、装置及电子设备
CN108572869B (zh) 一种物理主机选择方法、装置、设备及可读存储介质
CN111314446B (zh) 一种资源更新方法、装置、服务器及存储介质
CN114490083A (zh) Cpu资源的绑定方法、装置、存储介质及电子装置
CN112783500B (zh) 编译优化信息生成方法、装置及电子设备
CN110191460B (zh) 一种新入网用户监测方法及平台
CN112799690A (zh) 信息处理方法、装置、设备和存储介质
CN113010172B (zh) 配置文件的处理方法、装置、系统及存储介质
CN113127047A (zh) 热点代码处理方法、装置、服务器及存储介质
CN112529207A (zh) 模型优化方法、装置、存储介质及设备
CN110365342A (zh) 波形解码方法及装置
CN111582398B (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