CN113015957A - 用户设备、服务器、该用户设备的控制方法以及该服务器的控制方法 - Google Patents

用户设备、服务器、该用户设备的控制方法以及该服务器的控制方法 Download PDF

Info

Publication number
CN113015957A
CN113015957A CN201980075214.6A CN201980075214A CN113015957A CN 113015957 A CN113015957 A CN 113015957A CN 201980075214 A CN201980075214 A CN 201980075214A CN 113015957 A CN113015957 A CN 113015957A
Authority
CN
China
Prior art keywords
application
compilation
controller
storage device
assembly
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
CN201980075214.6A
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113015957A publication Critical patent/CN113015957A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种用户设备(UE),包括存储设备、以及控制器,该控制器可以:在第一应用的多个汇编文件中识别具有等于或大于预定阈值的第一使用频率的第一汇编文件;基于具有等于或大于预定阈值的第一使用频率的第一汇编文件提前(AOT)编译第一汇编文件;基于AOT编译第一汇编文件获得第一编译结果;将第一编译结果存储于存储设备中;并且基于运行第一应用的请求,通过使用存储于存储设备中的第一编译结果来运行第一应用。

Description

用户设备、服务器、该用户设备的控制方法以及该服务器的控 制方法
技术领域
本公开涉及一种用户设备(UE)和服务器,其对应用的源代码执行提前(ahead-of-time,AOT)编译。
背景技术
通常,UE将具有字节码格式的应用的源代码编译成诸如本机代码或机器代码的机器语言,以便运行应用。
编译应用的源代码的方法包括用于在每次应用运行时执行编译的即时(JIT)编译方法,以及用于在应用的运行前编译应用的源代码的AOT编译方法。
与JIT编译方法相比,AOT编译方法可以提供以前编译的机器代码,从而可以使应用更快速地运行,而无需重新编译应用。
然而,由于UE的硬件限制,AOT编译方法可能具有较长的编译时间,并且由于得到的机器代码量较大,AOT编译方法可能会消耗UE的存储器资源。
发明内容
技术问题
提供了一种用户设备及其控制方法,其基于用户运行应用的历史对用户经常使用的文件执行提前(AOT)编译;以及一种服务器及其控制方法,其基于多个用户设备中运行应用的历史对经常使用的应用执行AOT编译,并向用户设备发送编译结果。
技术方案
根据本公开的一方面,提供了一种用户设备(UE),包括存储设备和控制器,该控制器可以:在第一应用的多个汇编文件中识别具有等于或大于预定阈值的第一使用频率的第一汇编文件;基于具有等于或大于预定阈值的第一使用频率的第一汇编文件提前(AOT)编译第一汇编文件;基于AOT编译第一汇编文件来获得第一编译结果;将第一编译结果存储于存储设备中;并且基于运行第一应用的请求,通过使用存储于存储设备中的第一编译结果来运行第一应用。
控制器可以基于在运行第一应用的同时接收运行第一应用的多个功能中的特定功能的用户请求,识别与特定功能对应的第二汇编文件的第二编译结果是否存储于存储设备中。
控制器可以基于识别出第二编译结果存储于存储设备中,使用与特定功能对应的第二汇编文件的第二编译结果来运行第一应用。
控制器可以基于识别出第二编译文件的第二编译结果未存储于存储设备中,即时(JIT)编译与特定功能对应的第二汇编文件,并基于JIT编译与特定功能对应的第二汇编文件来运行第一应用。
第一应用可以具有字节码格式。
控制器可以基于具有字节码格式的第一应用来运行虚拟机(VM),并使用VM来AOT编译第一汇编文件。
控制器可以基于在运行第一应用的同时接收运行与存储于存储设备中的第二编译结果不对应的第一应用的功能的用户请求,使用运行第一应用的VM来即时(JIT)编译与功能对应的第二汇编文件。
控制器可以在第一应用的多个汇编文件中识别具有小于预定阈值的第二使用频率的第二汇编文件,并从存储设备移除与第二汇编文件对应的第二编译结果。
UE还可以包括配置为与服务器通信的通信设备,并且控制器可以基于运行第一应用,控制通信设备向服务器传送应用运行历史信息,包括应用标识符、识别UE所使用的汇编文件的汇编文件信息、或UE的设备版本信息中的至少一个。
设备版本信息可以包括UE的固件版本、中间件版本、或应用编程接口(API)版本中的至少一个。
控制器可以控制通信设备向服务器传送针对第二应用的应用下载请求消息,并且基于应用下载请求消息来接收与第二应用的编译相关联的信息,该第二应用的编译与UE的设备版本兼容。
控制器可以基于与第二应用的编译相关联的信息来识别第二应用的多个汇编文件中的第二汇编文件;并且AOT编译第二汇编文件。
根据本公开的一方面,提供了一种服务器,包括存储设备;配置为经由网络与多个用户设备(UE)通信的通信设备;以及控制器,该控制器可以:从多个UE接收应用运行历史信息;基于应用运行历史信息识别具有等于或大于预定阈值的使用频率的应用;基于等于或大于预定阈值的使用频率将应用的源代码提前(AOT)编译成编译结果;基于AOT编译应用的源代码来获得编译结果;并将编译结果存储于存储设备中。
应用运行历史信息可以包括应用的应用标识符、与应用的汇编文件相关联的汇编文件信息、或配置为运行应用的UE的设备版本信息中的至少一个。
设备版本信息可以包括配置为运行应用的UE的固件版本、中间件版本、或应用编程接口(API)版本中的至少一个。
控制器可以基于汇编文件信息在应用的多个汇编文件中识别具有等于或大于另一个预定阈值的另一个使用频率的汇编文件,并AOT编译汇编文件。
控制器可以将与相同应用标识符和相同设备版本对应的多个应用的使用频率与预定阈值进行比较,并基于比较使用频率来识别应用。
控制器可以基于与应用对应的设备版本信息来生成具有与应用对应的相同设备版本的虚拟机(VM)。
控制器可以通过使用VM获得与相同设备版本兼容的编译结果。
控制器可以经由通信设备从至少一个UE接收针对应用的应用下载请求消息,并且控制通信设备向至少一个UE传送与至少一个UE的设备版本兼容且与应用对应的编译结果。
根据本公开的一方面,提供了一种包括存储设备以及配置为与服务器通信的通信设备的用户设备的控制方法,该控制方法包括:在第一应用的多个汇编文件中识别具有等于或大于预定阈值的使用频率的第一汇编文件;基于等于或大于预定阈值的使用频率来提前(AOT)编译第一汇编文件;基于AOT编译第一汇编文件来获得编译结果;将编译结果存储于存储设备;并基于运行第一应用的请求,通过使用存储于存储设备的编译结果来运行第一应用。
控制方法还可以包括基于运行第一应用的同时接收运行第一应用的多个功能中的特定功能的用户请求,识别与特定功能对应的第二汇编文件的第二编译结果是否存储于存储设备中。
控制方法可以包括基于识别出第二编译结果存储于存储设备中,使用与特定功能对应的第二汇编文件的第二编译结果来运行第一应用。
控制方法可以包括基于识别出第二编译结果未存储于存储设备中,即时(JIT)编译第二汇编文件,并基于JIT编译第二汇编文件来运行第一应用。
第一应用可以具有字节码格式。
控制方法还可以包括基于具有字节码格式的第一应用,生成配置为执行AOT编译的虚拟机(VM)。
控制方法还可以包括基于运行第一应用的同时接收运行与存储于存储设备的编译结果不对应的功能的用户请求,通过使用运行第一应用的VM来执行JIT编译。
控制方法还可以包括基于汇编文件的使用频率,在第一应用的多个汇编文件中确定具有存储于存储设备中的待删除的编译结果的汇编文件。
控制方法还可以包括基于运行第一应用,控制通信设备向服务器传送应用运行历史信息,包括应用标识符、识别汇编文件的汇编文件信息、或UE的设备版本信息中的至少一个。
设备版本信息可以包括UE的固件版本、中间件版本、或应用编程接口(API)版本中的至少一个。
控制方法还可以包括控制通信设备向服务器传送针对第二应用的应用下载请求消息,并经由通信设备接收与与UE的设备版本兼容并对应于第二应用的编译相关联的信息。
控制方法还可以包括基于与对应于第二应用的编译相关联的信息,识别第二应用的多个汇编文件中待AOT编译的汇编文件。
有益效果
提供了一种用户设备(UE)和服务器,可以通过基于用户的使用的频率执行提前(AOT)编译并管理AOT编译的机器代码来有效地管理UE的存储空间。
附图说明
图1是根据实施例的包括用户设备(UE)和服务器的应用运行系统的图;
图2是根据实施例的UE的控制框图;
图3是根据实施例的服务器的控制框图;
图4是根据实施例的应用的源代码的图;
图5是根据实施例的存储于UE的编译结果的图;
图6是根据实施例的提前(AOT)编译的信号流的图;
图7是根据实施例的发送编译结果的信号流的图;
图8是示出了根据实施例的在UE的控制方法中更新存储于存储设备的编译结果的情况的流程图;
图9是示出了根据实施例的在UE的控制方法中更新存储于存储设备的编译结果的情况的流程图;
图10是示出了根据实施例的在UE的控制方法中向服务器提供应用下载请求的情况的流程图;
图11是示出了根据实施例的在服务器的控制方法中执行AOT编译的情况的流程图;
图12是示出了根据实施例的在服务器的控制方法中向UE发送编译结果的情况的流程图。
具体实施方式
如在本公开中描述和示出的实施例和特征被提供作为示例,并且应当理解,各种修改是可能的。
还应当理解,术语“连接”或其衍生词可以指直接连接和间接连接两者,并且间接连接包括经由无线通信网络的连接。
本文使用的术语可以描述特定实施例,并且不旨在限制本公开。还应当理解,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”也可以包括复数形式。应当进一步理解,如本文所使用的术语“包括”和/或“包含”可以指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但可能不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
包括诸如“第一”和“第二”的序数词的术语可以用于解释各种组件,但是该组件不受这些术语的限制。该术语可用于将一个组件与另一组件区分开的目的。因此,在不脱离本公开的教导的情况下,下面讨论的第一元件、组件、区域、层或段也可以被称为第二元件、组件、区域、层或段。
此外,诸如“~部分”、“~块”、“~成员”、“~模块”等的术语可以指代配置为执行至少一个功能或操作的单元。例如,该术语可以指至少部分地在硬件中实现的至少一个单元,诸如现场可编程门阵列(FPGA)、特定应用集成电路(ASIC)等、存储在存储器中的软件或至少一个处理器。
用于方法步骤的附图标记可以用于识别相应的步骤,但不限制步骤的顺序。因此,除非上下文另有明确规定,否则书写顺序也可以以其他方式实施。
现在将详细参考在附图中示出的各种实施例,其中相同的附图标记始终指代相同的元件。
图1是根据实施例的包括用户设备(UE)100和服务器200的应用运行系统10的图。
参照图1,应用运行系统10可以包括多个UE(UE 100-1、UE 100-2和UE 100-3)、服务器200、以及网络300.
UE 100中的每一个都可以经由网络300与服务器200连接。例如,UE 100可以经由无线连接或有线连接与网络300连接,以经由无线通信或有线通信与服务器200通信。
无线通信可以包括使用长期演进(LTE)、LTE-Advanced(LTE-A)、码分多址(CDMA)、宽带CDMA(WCDMA)、通用移动电信系统(UMTS)、无线宽带(WiBro)、全球移动通信系统(GSM)等中的至少一种的蜂窝通信。在实施例中,无线通信可以包括无线局域网(Wi-Fi)、蓝牙、蓝牙低功耗(BLE)、ZigBee、近场通信(NFC)、磁安全传输、射频(RF)、体域网(BAN)通信等中的至少一种。在实施例中,无线通信可以包括全球导航卫星系统(GNSS)通信。GNSS可以包括全球定位系统(GPS)、全球导航卫星系统(Glonass)、北斗导航卫星系统(以下也称为“北斗”)或伽利略(欧洲全球基于卫星的导航系统)等。
有线通信可以包括通用串行总线(USB)、高清多媒体接口(HDMI)、推荐标准(RS)232、电力线通信、普通传统电话业务(POTS)等中的至少一种。
网络300可以包括电信网络、计算机网络(例如,局域网(LAN)、广域网(WAN)等)、因特网、电话网等中的至少一种。
在实施例中,UE 100可以包括便携式终端或固定终端。
如UE 100-1所示的便携式终端可以是易于携带的移动电子设备,并且可以包括视频电话、蜂窝电话、智能电话、宽带码分多址(WCDMA)终端、通用移动电信服务(UMTS)终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数字多媒体广播(DMB)终端、电子书、便携式计算机(例如,笔记本电脑,平板电脑等)、智能眼镜、数码相机等。
如UE 100-2或UE 100-3所示的固定终端可以是在特定位置相对固定的电子设备,诸如台式个人计算机、智能电视等。
UE 100可以基于用户的输入运行用户所请求的应用。UE 100可以向服务器200传送下载请求消息以请求应用的下载,接收与应用对应的诸如机器代码等的编译结果,并运行应用。
虽然图1中示出了三个UE(UE 100-1、UE 100-2和UE 100-3),但其他实施例包括经由网络300与服务器200连接的不同数量的UE 100。
在实施例中,服务器200可以经由网络300与多个UE 100连接。例如,服务器200可以经由无线连接或有线连接与网络300连接,以与UE 100通信。
服务器200可以从多个UE 100中的每一个接收应用运行历史信息,基于接收到的多条应用运行历史信息来识别用户经常使用的应用,并对所识别的应用执行AOT编译以获得诸如机器代码的编译结果。
服务器200可以基于从UE 100接收针对所识别的应用的下载请求消息,向UE 100传送与所识别的应用对应的编译结果。因此,由于应用可以在不需要UE 100执行编译的情况下运行,UE 100可以更快速的运行应用。服务器200的操作将在本文别处更详细地描述。
如上所述,AOT编译可以指在应用的运行之前将应用的源代码翻译为诸如机器代码的机器语言。AOT编译可以包括加载应用的源代码,解析应用的源代码以创建抽象语法树(AST),以及通过使用AST将应用的源代码转换为机器代码。然而,编译方法并不仅限于此,并且可以包括将应用的源代码转换为机器代码的任何方法。
此外,AOT编译是一种预先编译方法,通过该方法,应用的源代码在应用的运行之前被编译为诸如机器代码的机器语言,允许应用基于从用户接收到的运行应用的命令运行AOT编译的机器代码而无需编译。
预加载可以指基于满足一定条件,预先将数据从硬盘加载到随机存取存储器(RAM)中的操作。预加载可以包括针对UE 100的从诸如服务器200的外部设备自动下载内容数据的操作。换言之,预加载可以指预先将数据加载到RAM中,并且可以占据存储器和中央处理器(CPU),其可能不同于存储所编译的机器代码的AOT编译。
图2是根据实施例的UE 100的控制框图。
参照图2,UE 100可以包括:配置为与服务器200执行通信的通信设备110;配置为基于识别用于运行应用的汇编文件的汇编文件信息,运行应用并AOT编译汇编文件的控制器120;配置为存储诸如机器代码的编译结果的存储设备130;配置为接收来自用户的输入的输入设备140;配置为基于应用的运行而输出可听内容的扬声器150;以及配置为基于应用的运行而输出可视内容的显示器160。
在实施例中,通信设备110可以经由网络300与服务器200执行无线通信或有线通信。
通信设备110可以在控制器120的控制下与服务器200通信。具体地,如本文别处更详细地描述,通信设备110可以在控制器120的控制下向服务器200传送应用运行历史信息或应用下载请求消息,并从服务器200接收与应用对应的诸如机器代码的编译结果,
通信设备110可以包括蜂窝模块、Wi-Fi模块、蓝牙模块、GNSS模块、NFC模块、RF模块等。
在实施例中,蜂窝模块、Wi-Fi模块、蓝牙模块、GNSS模块和/或NFC模块可以集成在单个集成电路(IC)、IC封装等。RF模块可以传送和/或接收诸如RF信号的通信信号。RF模块可以包括收发器、功率放大模块(PAM)、频率滤波器、低噪音放大器(LNA)、天线等。在实施例中,蜂窝模块、Wi-Fi模块、蓝牙模块、GNSS模块和/或NFC模块可以经由单独的RF模块传送和/或接收RF信号。
此外,在实施例中,通信设备110可以包括配置为执行有线通信的USB模块、HDMI模块、RS-232模块、POTS模块等。
在实施例中,控制器120可以包括CPU、应用处理器(AP)、通信处理器(CP)等。控制器120可以执行与UE 100的其他组件中的至少一个的控制和/或通信相关的操作或数据处理。
控制器120可以通过运行操作系统(OS)或应用程序来控制连接到控制器120的硬件组件和软件组件,并执行数据处理和操作。控制器120可以在片上系统(SoC)中实现。
在实施例中,控制器120还可以包括图形处理器(GPU)和/或图像信号处理器。控制器120可以加载从易失性存储器的其他组件中的至少一个接收到的命令或数据,然后处理该命令或数据,并将结果数据存储于非易失性存储器中。
在实施例中,控制器120可以识别在应用的源代码中包括的使用频率等于或大于预定阙值的多个汇编文件中的一个,如果没有对应于汇编文件的编译结果存储在存储设备130中,则通过AOT编译汇编文件来获得编译结果,并将编译结果存储于存储设备130中。
具体地,控制器120可以基于与在应用程序的源代码中包括的多个汇编文件中的使用频率相关联的信息来识别待AOT编译的汇编文件,通过AOT编译所识别的汇编文件获得编译结果,将编译结果存储于存储设备130中,并响应于运行应用的请求,使用存储于存储设备130中的编译结果来运行应用。
在这种情况下,如果与应用的功能对应的编译结果存在于存储设备130中,则控制器120可以使用编译结果来运行应用。或者,如果与应用的功能对应的编译结果并未存在于存储设备130中,则控制器120可以通过编译多个汇编文件中与应用的功能对应的汇编文件来运行应用。
具体地,基于在应用运行后来自用户的运行由应用支持的多个功能中的特定功能的请求,控制器120可以识别与特定功能对应的汇编文件的编译结果是否存储于存储设备130中。
如果与特定功能对应的汇编文件的编译结果存储于存储设备130中,则控制器120可以使用编译结果来运行应用。
如果与特定功能对应的汇编文件的编译结果并未存储于存储设备130中,则控制器120可以通过JIT编译与特定功能对应的汇编文件来运行应用。
作为AOT编译的目标的应用可以与字节码格式的应用相对应。具体地,待AOT编译的应用可以是字节码格式,其可以通过在虚拟机(VM)中被编译来运行。
因此,控制器120可以运行对字节码格式类型的应用执行AOT编译的VM。
此外,基于在字节码格式的应用运行后运行与存储于存储设备130中的编译结果不对应的功能的请求,控制器120可以使用运行应用的VM来执行JIT编译。
应用的源代码可以包括多个汇编文件以提供各种功能。例如,应用的源代码可以包括多个汇编文件,诸如提供特定功能的汇编文件和提供另一功能的另一汇编文件。
如上所述,UE 100可以识别应用的源代码中与经常使用的功能对应的汇编文件,对经常使用的汇编文件执行AOT编译,其是一种预先编译方法,并存储编译结果,以便在重新运行应用的功能时使用。基于使用频率的汇编文件的编译将在本文的别处更详细地描述。
控制器120可以识别具有小于预定阈值的使用频率的汇编文件,并基于存储于存储设备130中的编译结果从存储设备130中删除汇编文件的编译结果。
换言之,基于汇编文件的使用频率,控制器120可以识别应用的源代码中包括的多个汇编文件中的任何一个,其存储在存储设备130中的编译结果将被删除。
如上所述,通过考虑用户对应用或汇编文件的使用频率来更新存储于存储设备130中诸如机器代码的编译结果,UE 100可以删除与其他应用或汇编文件相比使用频率较低的应用或汇编文件的编译结果。这样,UE 100可以更适应和高效地使用存储设备空间,从而节省存储器资源。
在实施例中,控制器120可以控制通信设备110向服务器200传送应用运行历史信息,包括应用标识符、识别所使用的汇编文件的汇编文件、或UE 100的设备版本信息中的至少一个。
设备版本信息可以包括识别UE 100的固件版本、中间件版本、应用编程接口(API)版本、OS版本、设备版本、硬件版本等的信息。
服务器200可以从多个UE 100获得应用运行历史信息,基于接收到的应用运行历史信息识别经常使用的应用,并对所识别的应用执行AOT编译。服务器200的AOT编译将在本文别处更详细地描述。
在实施例中,控制器120可以控制通信设备110向服务器200传送针对应用的下载请求消息。下载请求消息可以包括UE 100的设备版本信息。
此外,通信设备110可以从服务器200接收对应于与UE 100的设备版本兼容的应用的编译结果。从服务器接收编译结果将在本文的别处更详细地描述。
如上所述,UE 100的控制器120可以包括至少一个用于存储用于执行上述以及以下操作的程序的存储器,以及至少一个用于运行程序的处理器。存储器和处理器可以被集成在单个芯片中或物理地分布。
存储设备130可以包括易失性存储器和/或非易失性存储器。例如,存储设备130可以存储与UE 100的其他组件中的至少一个相关联的命令或数据。
存储设备130可以包括内存储器或外存储器。内存储器可以包括易失性存储器(诸如动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)等)或非易失性存储器(诸如一次性可编程ROM(OTPROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、掩膜ROM、快闪ROM、快闪存储器、硬盘驱动器、固态驱动器(SSD)等)中的至少一种。
外存储器可以包括诸如紧凑型闪存卡(CF)、安全数码卡(SD)、微型SD、迷你SD、极限数字卡(xD)、多媒体卡(MMC)、记忆棒等闪盘驱动器。外存储器可以经由各种接口功能性和/或物理性地连接到UE 100。
在实施例中,存储设备130可以存储软件和/或程序。程序可以包括,例如固件、内核、中间件、API、和/或应用程序(或应用)。
固件可以指在UE 100被激活时用于控制UE 100的硬件组件的程序。固件可以被增强以提供改善的性能和调试,并可以随着新版本而更新。
内核可以控制或管理诸如处理器、存储器等的系统资源,其被用于执行在其他程序诸如固件、中间件、API或应用等中实现的操作或功能。此外,内核可以为固件、中间件、API或应用提供接口,以访问UE 100的相应组件来控制或管理系统资源。
中间件可以起到用于允许API或应用与内核通信以交换数据的中介的作用。此外,中间件可以按优先级顺序处理从应用接收的一个或多个任务请求。例如,中间件可以将用于使用UE 100的系统资源(诸如处理器或存储器)的优先级分配给至少一个应用,并处理一个或多个任务请求。
API可以指用于应用控制从固件、内核、或中间件提供的功能的接口,并且可以包括针对文件控制、窗口控制、图像处理、文本控制等的至少一个接口或功能(例如,指令)。
此外,存储设备130可以存储用于控制与UE 100和/或在OS中驱动的各种应用或应用程序相关的资源的OS。OS可以包括例如AndroidTM、iOSTM、WindowsTM、SymbianTM、TizenTM、或BadaTM
存储设备130的至少一部分可以被预加载到UE 100上,或者可以从诸如服务器200的外部电子设备下载。
此外,识别存储于存储设备130中的固件、中间件、API和应用中的每一个的版本的版本信息可以被存储。换言之,存储设备130可以存储UE 100的版本信息,包括识别固件版本、内核版本、中间件版本、API版本或应用版本的信息。
在实施例中,存储设备130可以存储应用的编译结果。具体地,存储设备130可以基于控制器120的操作存储AOT编译的应用的编译结果,诸如机器代码。存储设备130可以存储UE 100中存储的多个应用中的每一个的编译结果,并且还可以存储每个应用的源代码中每个汇编文件的编译结果。存储于存储设备130中的编译结果将在本文的别处更详细地描述。
在实施例中,输入设备140可以向UE 100的其他组件发送从用户或外部设备输入的命令或数据。
输入设备140可以包括触控面板、(数字)笔感应器、按键、无线输入设备、超声波输入设备等。触控面板可以利用电容法、电阻法、红外法或超声法中的至少一种。触控面板还可以包括控制电路。触控面板还可以包括用于为用户提供触觉的触觉层。(数字)笔感应器可以是触控面板252的一部分,或包括用于识别的单独的薄板。按键可以包括物理按钮、光学按键或键盘。无线输入设备可以基于来自诸如遥控器的电子设备的输入信号,接收来自用户输入的命令,该电子设备附接到UE 100但与UE 100分离。无线输入设备可以包括配置为接收来自电子设备的信号的单独的通信模块。超声波输入设备可以经由麦克风检查起源于输入工具的超声波,以识别与所检测的超声波对应的数据。
在实施例中,输入设备140可以从UE 100的用户接收运行某个应用的特定功能的命令,以及下载某个应用的命令。从用户接收的命令并不仅限于此,并且根据在UE 100中要执行的功能,可能有各种命令。
扬声器150可以在声音信号和电信号之间转换。扬声器150可以处理经由接收器、耳机、麦克风等输入或输出的声音信息。
在实施例中,扬声器150可以基于正在运行的应用向用户提供可听内容输出。
显示器160可以包括液晶显示器(LCD)、发光二极管(LED)显示器、有机LED显示器、微电子机械系统(MEMS)显示器、电子纸显示器等。显示器160可以向用户显示各种内容,诸如文本、图像、视频、图标、符号等。
换言之,显示器160可以基于正在运行的应用向用户提供可视内容输出。
显示器160可以包括触摸屏,其可以检测电子笔或用户的身体部分的触摸、手势、接近或悬停输入。
图3是根据实施例的服务器200的控制框图。
参照图3,服务器200可以包括:通信设备210,配置为经由网络300与多个UE 100执行通信;控制器220,配置为基于与从多个UE 100的每一个接收的应用运行历史相关联的信息识别具有等于或大于预定阈值的使用频率的应用,并通过AOT编译所确定的应用来获得编译结果;以及存储设备230,配置为存储编译结果。
在实施例中,通信设备210可以经由网络300与UE 100执行无线通信或有线通信。
例如,通信设备210可以在控制器220的控制下与UE 100通信。具体地,如本文别处更详细地描述,通信设备210可以从多个UE 100接收应用运行历史信息或应用下载请求消息,并且向发送应用下载请求消息的UE 100传送与应用对应的诸如机器代码的编译结果。
通信设备210可以包括蜂窝模块、Wi-Fi模块、蓝牙模块、GNSS模块、NFC模块、RF模块等。
在实施例中,蜂窝模块、Wi-Fi模块、蓝牙模块、GNSS模块和/或NFC模块可以集成在单个集成电路(IC)、IC封装等。RF模块可以传送和/或接收诸如RF信号的通信信号。RF模块可以包括收发器、PAM、频率滤波器、LNA和天线等。在实施例中,蜂窝模块、Wi-Fi模块、蓝牙模块、GNSS模块和/或NFC模块可以经由单独的RF模块传送和/或接收RF信号。
此外,在实施例中,通信设备210可以包括用于有线通信的USB模块、HDMI模块、RS-232模块、POTS模块等。
在实施例中,控制器220可以包括CPU、应用处理器(AP)或通信处理器(CP)中的一个或多个。控制器220可以执行与服务器200的其他组件中的至少一个的控制和/或通信相关联的操作或数据处理。
控制器220可以通过运行OS或应用程序来控制连接到控制器220的硬件组件和软件组件,并执行数据处理和操作。控制器220可以在片上系统(SoC)中实现。
在实施例中,控制器220也可以包括GPU和/或图像信号处理器。控制器220可以加载从易失性存储器中的其他组件中的至少一个接收到的命令或数据,然后处理该命令或数据,并且将结果数据存储于非易失性存储器中。
在实施例中,服务器200的控制器220可以基于从多个UE 100中的每一个接收的应用运行历史信息,识别具有等于或大于预定阈值的使用频率的应用,并且基于对应于未存储于存储设备230中的应用的编译结果,通过AOT编译所识别的应用的源代码来获得编译结果。
应用运行历史信息可以包括用于应用的应用标识符、与汇编文件相关联的汇编文件信息、或应用在其中运行的UE 100的设备版本信息中的至少一个。
具体地,控制器220可以在基于汇编文件信息识别的应用的源代码中包括的多个汇编文件中识别具有等于或大于预定阈值的使用频率的汇编文件,并通过AOT编译汇编文件来获得应用的编译结果。
具体地,控制器220可以基于从多个UE 100接收的应用运行历史信息来AOT编译具有相对较高使用频率的应用,以获得应用的诸如机器代码的编译结果。
除了通过AOT编译应用的全部源代码来获得应用的诸如机器代码的编译结果外,控制器220也可以通过AOT编译应用的源代码中具有相对较高使用频率的汇编文件来获得应用的编译结果。后一个编译结果可以包括与应用的源代码中包括的多个汇编文件的一些对应的机器代码。
此外,控制器220可以通过将与相同应用标识符和设备版本信息对应的每个应用的使用频率与预定阈值进行比较来识别作为AOT编译的目标的应用。
具体地,控制器220可以基于应用类型和应用在其中运行的UE 100的设备版本信息来对多个应用进行分类,并将每个分类应用的使用频率与预定阈值进行比较。
在这种情况下,控制器220可以识别是否要对具有相同应用类型和相同设备版本信息的每个应用执行AOT编译。
在实施例中,控制器220可以基于与所识别的应用对应的设备版本信息,生成具有与被识别为待AOT编译的目标的应用对应的设备版本的VM。
具体地,控制器220可以基于设备版本信息识别被识别为待AOT编译的目标的应用可以在其中运行的设备版本,并且生成具有所识别的设备版本的VM。
例如,控制器220可以为所识别的应用生成具有固件版本、中间件版本、API版本、和/或内核版本的VM。
VM可以指在软件中物理机器的虚拟化,其为所识别的应用提供与设备版本相同的操作环境,诸如固件版本、中间件版本、API版本和内核版本。
也就是说,VM可以指通过被分配处理器、存储器、磁盘I/O等在软件中实现的虚拟资源,以及其具有与UE 100的设备版本相同的操作环境。
控制器200可以在生成与具有相同设备版本的UE 100中的编译相同的结果的VM中执行AOT编译,并且在VM中生成的编译结果可以与具有与VM相同的设备版本的UE 100兼容。
换言之,服务器200的控制器220可以使用VM生成与UE 100的设备版本兼容的编译结果。
在实施例中,通信设备210可以从UE 100中的至少一个接收针对所识别的应用的下载请求消息。
具体地,通信设备210可以从至少一个UE 100接收针对应用的下载请求消息,该应用的编译结果存储于存储设备230中。
下载请求消息可以包括发送消息的UE 100的设备版本信息,以及请求的应用的标识符。
在实施例中,控制器220可以控制通信设备210向UE 100传送与至少一个UE 100的设备版本兼容且与所识别的应用对应的编译结果。
因此,UE 100可以不需要编译应用的源代码,而可以将编译结果用于应用,从而允许应用更快速地运行。
也就是说,为了减少UE 100执行编译的需求,服务器200可以执行应用的AOT编译,从而允许UE 100的控制器120和存储设备130更适应地被利用,以及从而节约分配给编译的资源。向UE 100的至少一个传送编译结果将在本文的别处更详细地描述。
如上所述,服务器200的控制器220可以包括用于存储执行上述和下列操作的程序的至少一个存储器,以及用于运行程序的至少一个处理器。处理器和存储器可以被集成在单个芯片中或物理地分布。
存储设备230可以包括易失性存储器和/或非易失性存储器。例如,存储设备230可以存储与服务器200的其他组件中的至少一个相关联的命令或数据。
存储设备230可以包括内存储器或外存储器。内存储器可以包括易失性存储器(诸如DRAM、SRAM、SDRAM等)或非易失性存储器(诸如OTPROM、PROM、EPROM、EEPROM、掩膜ROM、快闪ROM、快闪存储器、硬盘驱动器、或SSD)中的至少一种。
外存储器可以包括诸如CF、SD、微型SD、迷你SD、xD,多媒体卡(MMC)、记忆棒等闪盘驱动器。外存储器可以经由各种接口功能性和/或物理性地连接到服务器200。
此外,存储设备230可以存储用于控制与服务器200和/或在OS中驱动的各种应用或应用程序相关联的资源的OS。
存储设备230的至少一部分可以被预加载在服务器200上,或者可以从诸如外部服务器的外部电子设备下载。
在实施例中,存储设备230可以存储基于从多个UE 100中接收的应用运行历史信息所识别的应用的编译结果。存储设备230可以存储多个应用中每一个的编译结果,并且还可以存储每个应用的源代码中的每个汇编文件的编译结果。存储于存储设备230中的编译结果将在本文的别处更详细地描述。
图4是根据实施例的应用的源代码400的图。
参照图4,应用的源代码400可以包括多个汇编文件410至440。
具体地,存储于UE 100的存储设备130中的多个应用程序中的每一个的源代码400可以包括多个汇编文件。虽然在图4中示出了四个汇编文件410至440,但其他实施例包括应用的源代码中包括的不同数量的汇编文件。
应用可以基于应用运行的方式和/或用户与应用交互的方式提供各种功能。例如,用于内容再现的应用可以基于用户的输入再现图像,并且可以基于用户的另一个输入再现音乐。
在这种情况下,用于内容再现的应用的源代码400,可以包括用于再现图像的汇编文件汇编#1 410、汇编#2 420和汇编#3 430。
汇编文件410、汇编文件420和汇编文件430中的每一个可以包括不同的源代码,以执行与再现图像相关联的功能。例如,汇编#1 410可以包括用于再现图像的源代码,汇编#2420可以包括用于再现声音的源代码,且汇编#3 430可以包括用于接收图像信息和声音信息的源代码。
此外,用于内容再现的应用的源代码400可以包括用于再现音乐的汇编文件汇编#2 420、汇编#3 430和汇编#4 440。
汇编文件420、汇编文件430和汇编文件440中的每一个可以包括不同的源代码,以执行与再现音乐相关联的功能。例如,汇编#2 420可以包括用于再现音乐的源代码,汇编#3430可以包括用于接收音乐信息的源代码,且汇编#4 440可以包括用于调节均衡器的源代码。
如上所述,存储于UE 100中的存储设备130的每个应用可以包括与待使用的功能对应的多个汇编文件。与各个待使用的功能对应的汇编文件可以是彼此不同的。然而,尽管对应的待使用的功能是不同的,但一些汇编文件可能是常用的。
图5是根据实施例的存储于UE 100中的编译结果的图。
参照图5,UE 100可以将编译结果(诸如与应用对应的机器代码)存储于存储设备130中。编译结果可以从服务器200接收,也可以在UE 100编译应用的源代码后由UE 100存储。
编译结果可以基于对应的应用的类型单独提供,以及可以包括对应的应用的全部源代码的编译结果,或者可以包括应用的源代码中经常使用的汇编文件的编译结果。
UE 100可以在不需编译应用的情况下使用存储于存储设备130中的编译结果来运行应用。
存储于存储设备130中的编译结果可以基于用户对应用的使用频率而适应地更新。这样,UE 100可以更高效和适应地利用存储器存储空间。
具体地,控制器120可以在应用的源代码中包括的多个汇编文件中识别具有等于或大于预定阈值的使用频率的一个,基于与未存储于存储设备130中的汇编文件对应的编译结果,通过AOT编译汇编文件获得编译结果,并将编译结果存储于存储设备130中。
更具体地,控制器120可以基于应用的源代码中包括的多个汇编文件的使用频率识别待AOT编译的汇编文件,通过AOT编译所识别的汇编文件来获得编译结果,将编译结果存储于存储设备130中,并且基于存储于存储设备130中的编译结果运行应用,以响应运行应用的请求。
在这种情况下,如果与应用的功能对应的编译结果存储于存储设备130中,则控制器120可以使用编译结果来运行应用。或者,如果与应用的功能对应的编译结果未存储于存储设备130中,则控制器120可以通过编译多个汇编文件中与应用的功能对应的汇编文件来运行应用。
预定阈值可以对应于在一定时期内识别为用户经常使用的使用频率,以及可以在设计阶段期间预先设置或由用户经由输入设备140预先设置。
具体地,控制器120可以基于应用运行历史信息来识别每个应用的使用频率,以及基于与正被应用执行的汇编文件对应的功能,识别汇编文件的使用频率。
在这种情况下,控制器120可以分别通过应用标识符和汇编文件标识符来对应用和汇编文件进行分类。
因此,控制器120可以在应用的源代码中识别具有等于或大于预定阈值的使用频率的应用和汇编文件。换言之,控制器120可以基于应用运行历史来识别出具有相对较高使用频率的应用和应用的汇编文件。
控制器120可以通过AOT编译所识别的应用的汇编文件来获得编译结果并将编译结果存储于存储设备130中。然而,如果与应用的汇编文件对应的编译结果已经存储于存储设备130中,则控制器120可以避免编译应用的汇编文件。
如上所述,UE 100可以识别应用的源代码中与经常使用的功能对应的汇编文件,对经常使用的汇编文件执行AOT编译,其是一种预先编译方法,并存储编译结果,以便在重新运行应用的功能时使用。
例如,当应用APP#1的汇编#1的使用频率等于或大于预定阈值时,APP#1的汇编#1可以被AOT编译成诸如机器代码#1的编译结果,可以将其依次存储于存储设备130中。
控制器120可以识别具有小于预定阈值的使用频率的汇编文件,并且基于存储于存储设备130中的编译结果,从存储设备130删除汇编文件的编译结果。
换言之,控制器120可以基于汇编文件的小于阈值的使用频率,在应用的源代码中包括的多个汇编文件中识别具有存储于存储设备130中的待删除的编译结果的汇编文件。
例如,如果APP#1的汇编#2的使用频率小于预定阈值,并且机器代码#2(其为与APP#1的汇编#2对应的编译结果)存储于存储设备130中,则可以从存储设备130中删除机器代码#2。
如上所述,通过基于用户对应用或汇编文件的使用频率更新存储于存储设备130中诸如机器代码的编译结果,UE 100可以删除已经很少使用的应用或汇编文件的编译结果。这样,UE 100可以更适应和有效地使用存储设备空间。
此外,控制器120可以基于运行应用的请求,使用存储于存储设备130中的编译结果来运行应用。
例如,如果与应用的功能对应的编译结果存储于存储设备130中,则控制器120可以使用编译结果来运行应用。或者,如果与应用的功能对应的编译结果未存储于存储设备130中,则控制器120可以编译多个汇编文件中与应用的功能对应的汇编文件并且运行应用。
具体地,基于在应用运行后来自用户的运行由应用所支持的多个功能中的特定功能的请求,控制器120可以识别与特定功能对应的汇编文件的编译结果是否存储于存储设备130中。
如果与特定功能对应的汇编文件的编译结果存储于存储设备130中,则控制器120可以使用编译结果来运行应用。
如果与特定功能对应的汇编文件的编译结果未存储于存储设备130中,则控制器120可以通过JIT编译与特定功能对应的汇编文件来运行应用。
作为AOT编译的目标的应用可以对应于字节码格式的应用。具体地,待AOT编译的应用可以是字节码格式,其可以通过在VM中编译来运行。
因此,控制器120可以运行对字节码格式类型的应用执行AOT编译的VM。
此外,基于在字节码的应用运行后运行与存储于存储设备130中的编译结果不对应的功能的请求,控制器120可以使用运行应用的VM来执行JIT编译。
图6为根据实施例的AOT编译的信号流的图。
参照图6,多个UE 100-1,UE 100-2和UE 100-3可以在操作610中基于应用运行生成应用运行历史信息。
应用运行历史信息可以包括应用的应用标识符、与使用的汇编文件相关联的汇编文件信息、或应用在其中运行的UE 100的设备版本信息中的至少一个。
具体地,多个UE 100-1、UE 100-2和UE 100-3中的每一个可以生成应用运行历史信息,包括针对正在运行的应用的应用标识符、表示正在运行的应用的汇编文件的汇编文件信息(该汇编文件信息对应于正在运行的功能)、或正在运行的应用的UE 100的设备版本信息中的至少一个。
设备版本信息可以包括与UE 100的固件版本、中间件版本、或API版本相关联的信息。
在实施例中,多个UE 100-1、UE 100-2和UE 100-3可以在操作620中传送应用运行历史信息。
具体地,当多个UE 100-1、UE 100-2和UE 100-3中的一个运行应用时,UE 100向服务器200传送应用运行历史信息,包括应用标识符、表示所使用的汇编文件的汇编文件信息、或应用在其中运行的UE 100的设备版本信息中的至少一个。
因此,服务器200可以从多个UE 100-1、UE 100-2和UE 100-3接收应用运行历史信息。具体地,服务器200可以从UE 100-1、UE 100-2和UE 100-3中的每一个接收与UE 100中运行的应用相关联的信息,以及与UE使用的汇编文件相关联的信息。
在实施例中,服务器200可以在操作630中基于应用运行历史信息识别具有等于或大于预定阈值的使用频率的应用。换言之,服务器200可以基于应用运行历史信息识别经常被用作待AOT编译的目标的应用。
此外,服务器200的控制器220可以通过将与相同应用标识符和设备版本信息对应的每个应用的使用频率与预定阈值进行比较,来识别作为AOT编译的目标的应用。
具体地,控制器220可以基于应用类型和应用在其中运行的UE 100的设备版本信息对多个应用进行分类,并将每个分类的应用的使用频率与预定阈值进行比较。
这样,控制器220可以识别是否要对具有相同应用类型和相同设备版本信息的应用中的每一个执行AOT编译。
在实施例中,服务器200可以在操作640中通过AOT编译所识别的应用获得编译结果。
在实施例中,服务器200的控制器220可以基于从多个UE 100中的每一个接收的应用运行历史信息,识别具有等于或大于预定阈值的使用频率的应用,并基于与未存储于存储设备230中的所识别的应用对应的编译结果,通过AOT编译所识别的应用的源代码来获得编译结果。
具体地,控制器220可以在基于应用运行历史信息识别的应用的源代码中包括的多个汇编文件中,识别具有等于或大于预定阈值的使用频率的汇编文件,并通过AOT编译汇编文件来获得应用的编译结果。
具体地,控制器220可以基于从多个UE 100接收的应用运行历史信息,将具有相对较高使用频率的应用AOT编译为诸如机器代码的编译结果。
除了通过AOT编译应用的全部源代码来获得应用的诸如机器代码的编译结果外,控制器220还可以通过AOT编译应用的源代码中具有相对较高的使用频率的汇编文件来获得应用的编译结果。后一种编译结果可以包括与应用的源代码中所包括的多个汇编文件中的一些对应的机器代码。
在实施例中,控制器220可以基于与所识别的应用对应的设备版本信息,生成具有与识别为待AOT编译的目标的应用对应的设备版本的VM。
具体地,控制器220可以基于设备版本信息识别被识别为待AOT编译的目标的应用可以在其中运行的UE 100的设备版本,并生成具有所识别的设备版本的VM。
例如,控制器220可以为所识别的应用生成具有固件版本、中间件版本、API版本、和/或内核版本的VM。
VM可以指在软件中物理机器的虚拟化,其为所识别的应用提供与设备版本相同的操作环境,诸如固件版本、中间件版本、API版本和内核版本。
也就是说,VM可以指在软件中通过被分配处理器、存储器、磁盘I/O等实现的虚拟资源,以及其具有与设备版本相同的操作环境。
然后,控制器220可以执行AOT编译,其生成与具有VM的设备版本的UE 100中的编译相同的结果,并且VM中生成的编译结果可以与具有与VM相同的设备版本的UE 100兼容。
换言之,服务器200的控制器220可以使用VM生成与UE 100的设备版本兼容的编译结果。
在实施例中,服务器200可以在操作650中将编译结果保存于存储设备230中。基于来自UE 100的下载请求消息,存储的编译结果可以传送给UE 100。
虽然图6中示出了三个UE(UE 100-1,UE 100-2和UE 100-3),但其它实施例中包括不同数量的UE 100。
图7是根据实施例的发送编译结果的信号流的图。
参照图7,UE 100可以在操作710中接收识别应用下载请求的用户输入。
具体地,UE 100可以经由输入设备140接收识别应用下载请求的用户输入。
UE 100可以在操作720中向服务器200传送应用下载请求。
具体地,在实施例中,控制器120可以控制通信设备110向服务器200传送针对应用的应用下载请求消息。应用下载请求消息可以包括识别UE 100的UE标识符、UE 100的设备版本信息、和应用标识符。
在实施例中,服务器200可以在操作730中识别UE 100的设备版本。具体地,服务器200可以基于应用下载请求消息中包括的UE 100的设备版本信息,识别发送下载请求消息的UE 100的诸如固件版本、中间件版本、API版本、内核版本等设备版本。
在实施例中,服务器200可以在操作740中识别与UE 100的设备版本兼容且与应用对应的编译结果。
具体地,基于UE 100的所识别的设备版本,服务器200的控制器220可以识别具有与发送应用下载请求消息的UE 100相同的设备版本的VM生成的编译结果。
具有与UE 100相同的设备版本的VM可以执行应用的AOT编译,其生成与UE 100对应用的编译相同的结果。这样,VM中生成的编译结果可以与具有与VM相同的设备版本的UE100兼容。
在这种情况下,控制器220可以基于应用下载请求消息中包括的应用标识符识别与UE 100所请求的应用对应的编译结果。
在实施例中,服务器200可以在操作750中传送所识别的编译结果。
具体地,服务器200的控制器220可以控制通信设备210以向发送应用下载请求消息的UE 100传送所识别的编译结果。控制器220可以基于应用下载请求消息中包括的UE标识符来识别发送应用下载请求消息的UE 100。
在实施例中,UE 100可以在操作760中基于所识别的编译结果来运行应用。
具体地,UE 100的控制器120可以基于从服务器200接收的编译结果来运行应用,而无需自行编译应用的源代码。从应用的运行功能中产生的信息可以通过UE 100的扬声器150或显示器160输出。
因此,UE 100可以不需要编译应用的源代码,而可以将编译结果用于应用,从而允许应用更快速地运行。
也就是说,为了减少UE 100自行执行编译的需求,服务器200可以执行应用的AOT编译,从而允许UE 100的控制器120和存储设备130更适应和有效地被利用,以及从而节约原本分配给编译的资源。
此外,UE 100的控制器120可以使用与应用下载请求消息相对应的应用的编译结果,从应用的多个汇编文件中识别待AOT编译的汇编文件。换言之,编译结果可以表示待AOT编译的汇编文件。
现在将描述根据实施例的UE 100和服务器200的控制方法。在描述UE 100的控制方法和服务器200的控制方法时,可能应用上述UE 100和服务器200。上述关于图1至图7的描述也可能应用于UE 100或服务器200的控制方法中,并且多余的描述可能省略。
图8是示出了根据实施例的在UE 100的控制方法中更新存储于存储设备130的编译结果的情况的流程图。
参照图8,UE 100的控制器120可以在操作810中生成与应用的运行期间使用的汇编文件相关联的汇编文件信息。
汇编文件信息可以包括识别具有汇编文件的应用的应用标识符,并且可以在应用程序的源代码中包括的多个汇编文件中识别在应用的运行期间使用的汇编文件。
换言之,控制器120可以基于应用的运行识别与功能相关联的汇编文件,并且生成识别汇编文件的汇编文件信息。因此,控制器120可以识别每个应用中包括的每个汇编文件的使用频率。
在实施例中,UE 100的控制器120可以在操作820中基于汇编文件信息识别具有等于或大于预定阈值的使用频率的第一汇编文件。
具体地,控制器120可以基于与使用频率相关联的信息识别应用的源代码中包括的多个汇编文件中待AOT编译的汇编文件,通过AOT编译所识别的汇编文件获得编译结果,将编译结果存储于存储设备130中,并且使用存储于存储设备130中的编译结果来运行应用,以响应于运行应用的请求。
在这种情况下,如果将对应于与应用的汇编文件相关联的功能的编译结果存储于存储设备130中,则控制器120可以使用编译结果来运行应用。或者,如果对应于与应用的汇编文件相关联的功能的编译结果未存储于存储设备130中,则控制器120可以通过编译多个汇编文件中与应用的功能对应的汇编文件来运行应用。
预定阈值可以对应于在一定时期内识别为用户经常使用的使用频率,以及可以在设计阶段期间预先设置或可以由用户经由输入设备140预先设置。
具体地,控制器120可以基于应用运行历史信息识别每个应用的使用频率,并且还可以基于与正在被应用执行的汇编文件对应的功能来识别汇编文件的使用频率。
在这种情况下,控制器120可以分别通过应用标识符和汇编文件标识符对应用和汇编文件进行分类。
因此,控制器120可以识别具有等于或大于预定阈值的使用频率的应用以及应用的源代码中的第一汇编文件。换言之,控制器120可以基于应用运行历史信息识别具有高使用频率的应用和应用的第一汇编文件。
如果控制器在操作830(操作830-NO)中识别出与第一汇编文件对应的第一编译结果未存储于存储设备130中,则UE 100的控制器120可以在操作840中通过AOT编译第一汇编文件来获得第一编译结果。
控制器120可以在操作850中将第一编译结果存储于存储设备130中。
控制器120可以通过AOT编译应用的第一汇编文件来获得第一编译结果并将第一编译结果存储于存储设备130中。或者,如果控制器120在操作830(操作830-YES)中识别出第一编译结果存储于存储设备130中,则控制器120可以避免AOT编译第一汇编文件。
如上所述,UE 100可以在应用的源代码中识别与经常使用的功能经常对应的汇编文件,对经常使用的汇编文件执行AOT编译,其为先前的编译方法,并存储编译结果,以便在重新运行应用的功能时使用。
图9是示出了根据实施例的在UE 100的控制方法中更新存储于存储设备130的编译结果的情况的流程图;
参照图9,UE 100的控制器120可以在操作910中生成在应用的运行期间识别汇编文件的汇编文件信息。
在实施例中,UE 100的控制器120可以在操作920中基于汇编文件信息识别具有小于预定阈值的使用频率的第二汇编文件。
预定阈值可以对应于在一定时期内识别为未被用户经常使用的使用频率,以及可以在设计阶段期间预先设置或可以由用户经由输入设备140预先设置。
因此,控制器120可以识别具有小于预定阈值的使用频率的应用和应用的源代码中的第二汇编文件。换句话说,控制器120可以基于应用运行历史信息识别出具有低使用频率的应用和应用的第二汇编文件。
如果控制器120在操作930(操作930-YES)中识别出与第二汇编文件对应的第二编译结果存储于存储设备130中,则UE 100的控制器120可以在操作940中从存储设备130中删除第二编译结果。
换言之,控制器120可以基于汇编文件的使用频率从应用的源代码中包括的多个汇编文件中识别与存储于存储设备130中的待删除的编译结果相关联的汇编文件。
如上所述,通过考虑用户对应用或汇编文件的使用频率来更新存储于存储设备130中的诸如机器代码的编译结果,UE 100可以删除已经很少使用的应用或汇编文件的编译结果。这样,UE 100可以更自适应和有效地利用存储设备空间。
图10是示出了根据实施例的在UE 100的控制方法中向服务器200提供应用下载请求的情况的流程图;
参照图10,UE 100可以在操作1010中接收识别应用下载请求的用户输入。
具体地,UE 100可以经由输入设备140接收识别应用下载请求的用户输入。
UE 100可以在操作1020中向服务器200传送应用下载请求消息。
具体地,在实施例中,控制器120可以控制通信设备110向服务器200传送应用下载请求消息。应用下载请求消息可以包括识别UE 100的UE标识符、UE 100的设备版本信息、和应用标识符。
在实施例中,UE 100可以在操作1030中从服务器200接收与UE 100的设备版本兼容且与应用对应的编译结果。
具体地,通信设备110可以从服务器200接收与UE 100的设备版本兼容且与应用对应的编译结果。
UE 100可以在操作1040中基于编译结果运行应用。
具体地,UE 100的控制器120可以基于从服务器200接收的编译结果运行应用,并可避免编译应用的源代码。从应用的功能的运行中产生的信息可以通过UE 100的扬声器150或显示器160输出。
因此,UE 100可以不需要编译应用的源代码,而可以将编译结果用于应用,从而允许应用更快速地运行。
也就是说,为了减少UE 100执行编译的需求,服务器200可以执行应用的AOT编译,从而使UE 100的控制器120和存储设备130能够更适应和有效地被利用,以及从而节约原本分配给编译的资源。
此外,UE 100的控制器120可以使用与应用下载请求消息对应的应用的编译结果从应用的多个汇编文件中识别待AOT编译的汇编文件。换言之,编译结果可以表示待AOT编译的汇编文件。
图11是示出了根据实施例的在服务器200的控制方法中执行AOT编译的情况的流程图。
参照图11,服务器200可以在操作1110中从多个UE 100中接收应用运行历史信息。
应用运行历史信息可以包括应用的应用标识符、与汇编文件相关联的汇编文件信息或UE 100的设备版本信息中的至少一个。
具体地,多个UE 100中的每一个可以生成应用运行历史信息,包括应用的应用标识符、表示应用的汇编文件的与功能对应的汇编文件信息、或UE 100的设备版本信息中的至少一个。
设备版本信息可以包括与UE 100的固件版本、中间件版本或API版本相关联的信息。
因此,服务器200可以从多个UE 100中获得应用运行历史信息。具体地,服务器200可以从多个UE 100中的每一个获得与UE运行的应用相关联的信息,以及与UE 100使用的汇编文件相关联的信息。
在实施例中,服务器200可以在操作1120中基于应用运行历史信息识别具有等于或大于预定阈值的使用频率的应用。换言之,服务器200可以基于应用运行历史信息将经常使用的应用识别为待AOT编译的目标。
此外,服务器200的控制器220可以通过将与相同应用标识符和设备版本信息对应的每个应用的使用频率与预定阈值进行比较,来识别作为AOT编译的目标的应用。
具体地,控制器220可以基于应用类型和应用在其中运行的UE 100的设备版本信息对多个应用进行分类,并将每个分类的应用的使用频率与预定阈值进行比较。
这样,控制器220可以识别出是否要对具有相同应用类型和相同设备版本信息的每个应用进行AOT编译。
如果控制器220在操作1130(操作1130-NO)中识别出与所识别的应用对应的编译结果未存储在存储设备230中,则服务器200可以在操作1140中为所识别的应用生成具有设备版本的虚拟机(VM)。
换言之,控制器220可以基于与所识别的应用对应的设备版本信息生成具有与识别为待AOT编译的目标的应用对应的设备版本的VM。
具体地,控制器220可以基于设备版本信息识别被识别为待AOT编译的目标的应用可以在其中运行的UE 100的设备版本,并生成具有所识别的设备版本的VM。
例如,控制器220可以为所识别的应用生成具有固件版本、中间件版本、API版本和/或内核版本的VM。
VM可以指在软件中物理机器的虚拟化,其为所识别的应用提供与设备版本相同的操作环境,如固件版本、中间件版本、API版本和内核版本。
也就是说,VM可以是指在软件中通过被分配处理器、存储器、磁盘I/O等实现的虚拟资源,以及其具有与设备版本相同的操作环境。
在实施例中,服务器200可以在操作1150中通过使用VM来AOT编译所识别的应用的源代码以获得编译结果。
具体地,控制器220可以在基于汇编文件信息识别的应用的源代码中包括的多个汇编文件中识别具有等于或大于预定阈值的使用频率的汇编文件,并通过AOT编译汇编文件获得应用的编译结果。
具体地,控制器200可以基于从多个UE 100接收到的应用运行历史信息,将具有高使用频率的应用AOT编译成应用的诸如机器代码的编译结果。
除了通过AOT编译应用的全部源代码获得应用的诸如机器代码的编译结果外,控制器220还可以通过AOT编译应用的源代码中具有高使用频率的汇编文件获得应用的编译结果。后一个编译结果可以包括与应用的源代码中包括的多个汇编文件中的一些对应的机器代码。
控制器220可以执行AOT编译,其生成与具有与虚拟机相同的设备版本的UE 100中的编译相同的结果,并且VM中生成的编译结果可以与具有与虚拟机相同的设备版本的UE100兼容。
换言之,服务器200的控制器220可以使用VM产生与设备版本兼容的编译结果。
在实施例中,服务器200可以在操作1160中将编译结果存储于存储设备230中。在接收到来自UE 100的下载请求消息时,存储的编译结果可以传送给UE 100。
如果控制器220在操作1130(操作1130-YES)中识别出与所识别的应用对应的编译结果存储于存储设备230中,则服务器200可以避免生成VM。
图12是示出了根据实施例的在服务器200的控制方法中向UE 100发送编译结果的情况的流程图。
参照图12,服务器200可以在操作1210中从UE 100接收应用下载请求消息。
具体地,在实施例中,通信设备210可以从UE 100接收应用下载请求消息。应用下载请求消息可以包括识别UE 100的UE标识符、UE 100的设备版本信息和应用标识符。
在实施例中,服务器200可以在操作1220中基于应用下载请求消息识别UE 100的设备版本。具体地,服务器200可以基于应用下载请求消息中包括的UE 100的设备版本信息,识别发送应用下载请求消息的UE 100的诸如固件版本、中间件版本、API版本、内核版本等的设备版本。
在实施例中,服务器200可以在操作1230中识别与UE 100的设备版本兼容且与应用对应的编译结果。
具体地,基于UE 100的所识别的设备版本,服务器200的控制器220可以识别具有发送应用下载请求消息的UE 100的设备版本的VM生成的编译结果。
具有与UE 100相同的设备版本的VM可以执行AOT编译,其生成与由UE 100的编译相同的结果,并且VM中生成的编译结果可以与具有与VM相同的设备版本的UE 100兼容。
在这种情况下,控制器220可以基于应用下载请求消息中包括的应用标识符识别与由UE 100请求的应用对应的编译结果。
在实施例中,服务器200可以在操作1240中向UE 100传送所识别的编译结果。
具体地,服务器200的控制器220可以控制通信设备210向发送应用下载请求消息的UE 100传送所识别的编译结果。控制器220可以基于应用下载请求消息中包括的UE标识符识别发送下载请求消息的UE 100。
因此,UE 100可以不需要编译应用的源代码,而可以将编译结果用于应用,从而允许应用更快速地运行。
也就是说,为了减少UE 100执行编译的需求,服务器200可以执行应用的AOT编译,从而使UE 100的控制器120和存储设备130能够更适应和高效地被利用,以及从而节约原本分配给编译的资源。
此外,UE 100的控制器120可以使用与应用下载请求消息对应的应用的编译结果从应用的多个汇编文件中识别出待AOT编译的汇编文件。换言之,编译结果可以表示待AOT编译的汇编文件。
同时,本公开的实施例可以以非暂时性计算机可读介质的形式实现,非暂时性计算机可读介质配置为存储待由计算机运行的指令。指令可以以程序代码的形式存储,并且当由处理器运行时,可以生成程序模块以执行本公开的实施例的操作。记录介质可以对应于非暂时性计算机可读记录介质。
非暂时性计算机可读记录介质包括任何类型的记录介质,其上存储有此后可由计算机读取的数据。例如,非暂时性计算机可读记录介质可以是ROM、RAM、磁带、磁盘、快闪存储器、光学数据存储设备等。
根据本公开的实施例,基于用户对应用和功能的使用频率执行AOT编译并管理AOT编译后的机器代码,可以提供一种UE、服务器、该UE的控制方法以及该服务器的控制方法以有效地使用UE的存储设备空间。
上文已经描述了实施例,但本领域普通技术人员应该理解和认识到,在不脱离公开的范围的情况下,可以做出各种修改。因此,对于本领域普通技术人员来说,本公开的范围由以下权利要求来定义应该是显而易见的。

Claims (15)

1.一种用户设备UE,包括:
存储设备;以及
控制器,配置为:
在第一应用的多个汇编文件中识别具有等于或大于预定阈值的第一使用频率的第一汇编文件;
基于具有等于或大于预定阈值的第一使用频率的第一汇编文件提前AOT编译第一汇编文件;
基于AOT编译第一汇编文件获得第一编译结果;
将编译结果存储于存储设备中;以及
基于运行第一应用的请求,通过使用存储于存储设备中的第一编译结果来运行第一应用。
2.根据权利要求1所述的UE,其中,所述控制器配置为基于在运行第一应用的同时接收运行第一应用的多个功能中的特定功能的用户请求,识别与所述特定功能对应的第二汇编文件的第二编译结果是否存储于存储设备中。
3.根据权利要求2所述的UE,其中,所述控制器配置为基于识别出第二编译结果存储于存储设备中,使用与所述特定功能对应的第二汇编文件的第二编译结果来运行第一应用,或者基于识别出第二汇编文件的第二编译结果未存储于存储设备中,通过即时编译与所述特定功能对应的第二汇编文件来运行第一应用。
4.根据权利要求1所述的UE,其中,所述第一应用具有字节码格式,并且其中所述控制器配置为运行虚拟机VM以执行AOT编译。
5.根据权利要求4所述的UE,其中,所述控制器配置为基于在运行第一应用的同时接收运行与存储于存储设备中的第二编译结果不对应的功能的用户请求,通过使用运行第一应用的VM来执行即时JIT编译。
6.根据权利要求1所述的UE,其中,所述控制器配置为在第一应用的多个汇编文件中识别具有小于预定阈值的第二使用频率的第二汇编文件,并且从存储设备移除与第二汇编文件对应的第二编译结果。
7.根据权利要求1所述的UE,还包括:
通信设备,配置为与服务器通信,
其中,所述控制器配置为基于运行第一应用,控制通信设备向服务器传送包括应用标识符、识别UE所使用的汇编的汇编文件信息、或UE的设备版本信息中的至少一个的应用运行历史信息。
8.根据权利要求7所述的UE,其中,所述设备版本信息包括UE的固件版本、中间件版本、或应用编程接口API版本中的至少一个。
9.根据权利要求7所述的UE,其中,所述控制器配置为控制通信设备向服务器传送针对第二应用的应用下载请求消息,以及接收与第二应用的编译相关联的信息,其中第二应用的编译与UE的设备版本兼容。
10.根据权利要求9所述的UE,其中,所述控制器配置为基于与第二应用的编译相关联的信息,在第二应用的多个汇编文件中识别第二汇编文件,并且AOT编译第二汇编文件。
11.一种服务器,包括:
存储设备;
通信设备,配置为经由网络与多个用户设备UE通信;以及
控制器,配置为基于从所述多个UE接收的应用运行历史信息识别具有等于或大于预定阈值的使用频率的应用,将应用的源代码提前AOT编译为编译结果,并将编译结果存储于存储设备中。
12.一种用户设备UE的控制方法,该UE包括存储设备和配置为与服务器通信的通信设备,所述控制方法包括:
在第一应用的多个汇编文件中识别具有等于或大于预定阈值的第一使用频率的第一汇编文件;
基于具有等于或大于预定阈值的第一使用频率的第一汇编文件提前AOT编译第一汇编文件;
基于AOT编译第一汇编文件获得第一编译结果;
将编译结果存储于存储设备中;以及
基于运行第一应用的请求,通过使用存储于存储设备中的第一编译结果运行第一应用。
13.根据权利要求12所述的控制方法,还包括:基于在运行第一应用的同时接收运行第一应用的多个功能中的特定功能的用户请求,识别与所述特定功能对应的第二汇编文件的第二编译结果是否存储于存储设备中。
14.根据权利要求13所述的控制方法,其中,运行第一应用包括:
基于识别出第二编译结果存储于存储设备中,使用与所述特定功能对应的第二汇编文件的第二编译结果来运行第一应用;或
基于识别出第二编译结果未存储于存储设备中,基于即时JIT编译与所述特定功能对应的第二汇编文件来运行第一应用。
15.根据权利要求12所述的控制方法,其中,所述第一应用具有字节码格式,并且其中所述方法还包括:
基于第一应用具有字节码格式,运行虚拟机VM以执行AOT编译;以及
基于在运行第一应用的同时接收运行与存储于存储设备中的编译结果不对应的功能的用户请求,通过使用运行第一应用的VM来执行即时JIT编译。
CN201980075214.6A 2018-11-16 2019-11-08 用户设备、服务器、该用户设备的控制方法以及该服务器的控制方法 Pending CN113015957A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2018-0141513 2018-11-16
KR1020180141513A KR102663196B1 (ko) 2018-11-16 2018-11-16 사용자 단말장치, 서버, 사용자 단말장치의 제어방법 및 서버의 제어방법
PCT/KR2019/015201 WO2020101288A1 (en) 2018-11-16 2019-11-08 User equipment, server, control method of the user equipment and control method of the server

Publications (1)

Publication Number Publication Date
CN113015957A true CN113015957A (zh) 2021-06-22

Family

ID=68583231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980075214.6A Pending CN113015957A (zh) 2018-11-16 2019-11-08 用户设备、服务器、该用户设备的控制方法以及该服务器的控制方法

Country Status (5)

Country Link
US (1) US11194603B2 (zh)
EP (1) EP3654176B1 (zh)
KR (1) KR102663196B1 (zh)
CN (1) CN113015957A (zh)
WO (1) WO2020101288A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416071A (zh) * 2021-11-30 2022-04-29 同程网络科技股份有限公司 基于跨端程序生成系统的订单预订方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151703A (en) * 1996-05-20 2000-11-21 Inprise Corporation Development system with methods for just-in-time compilation of programs
JP3377419B2 (ja) * 1997-11-11 2003-02-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 命令列生成方法及び装置、変換方法、及びコンピュータ
US6110226A (en) * 1998-02-19 2000-08-29 Cygnus Solutions Java development environment using optimizing ahead-of-time compiler
US6317873B1 (en) * 1998-10-14 2001-11-13 Alcatel Usa Sourcing, L.P. Assembly language translator
US6321377B1 (en) * 1998-12-03 2001-11-20 International Business Machines Corporation Method and apparatus automatic service of JIT compiler generated errors
US6530075B1 (en) * 1998-12-03 2003-03-04 International Business Machines Corporation JIT/compiler Java language extensions to enable field performance and serviceability
US6332216B1 (en) * 1999-03-09 2001-12-18 Hewlett-Packard Company Hybrid just-in-time compiler that consumes minimal resource
US6295642B1 (en) * 1999-04-29 2001-09-25 International Business Machines Corporation Method and apparatus for partial just in time compiling in a data processing system
US7032216B1 (en) * 2000-02-25 2006-04-18 Oracle International Corporation Native compilation and safe deployment of virtual machine code
US6904594B1 (en) * 2000-07-06 2005-06-07 International Business Machines Corporation Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
US6604167B1 (en) * 2000-09-28 2003-08-05 International Business Machines Corporation Method and apparatus traversing stacks for just-in-time compilers for Java virtual machines
KR100441115B1 (ko) * 2001-06-27 2004-07-19 주식회사 인터와이즈 정보 단말기의 자바 프로그램 처리 속도 향상을 위한 자바컴파일 온 디멘드 서비스 시스템 및 그 방법
US7213240B2 (en) * 2001-10-05 2007-05-01 Sun Microsystems, Inc. Platform-independent selective ahead-of-time compilation
US7562353B2 (en) * 2003-05-16 2009-07-14 Hewlett-Packard Development Company, L.P. Methods and systems for transforming Java applications of behalf of another device
US7587712B2 (en) * 2003-12-19 2009-09-08 Marvell International Ltd. End-to-end architecture for mobile client JIT processing on network infrastructure trusted servers
US7496897B1 (en) * 2004-03-17 2009-02-24 Timesys Corporation Multiple code sets for multiple execution contexts
US20090019431A1 (en) 2006-03-02 2009-01-15 Nxp B.V. Optimised compilation method during conditional branching
US8458670B2 (en) * 2007-09-27 2013-06-04 Symantec Corporation Automatically adding bytecode to a software application to determine network communication information
US8473935B2 (en) * 2008-04-21 2013-06-25 Microsoft Corporation Just-ahead-of-time compilation
US8201426B2 (en) * 2010-01-05 2012-06-19 Heim Jeffrey R System, method and apparatus for securing valuables
KR101088516B1 (ko) 2010-01-08 2011-11-30 한국과학기술연구원 수행 중 선행 컴파일링을 이용한 내장형 시스템을 위한 자바 컴파일링 방법
US9038038B1 (en) 2010-06-01 2015-05-19 Google Inc. Just in time cloud compilation
US9569184B2 (en) * 2012-09-05 2017-02-14 Microsoft Technology Licensing, Llc Generating native code from intermediate language code for an application
US8959495B2 (en) 2012-09-14 2015-02-17 Oracle International Corporation Unifying static and dynamic compiler optimizations in source-code bases
WO2014176587A2 (en) 2013-04-26 2014-10-30 The Trustees Of Columbia University In The City Of New York Systems and methods for mobile applications
US9250937B1 (en) * 2013-11-06 2016-02-02 The Regents Of The University Of California Code randomization for just-in-time compilers
KR102492871B1 (ko) 2015-12-15 2023-01-30 삼성전자주식회사 사용자 단말장치, 서버, 및 그 어플리케이션 실행 방법
US20170269950A1 (en) 2016-03-15 2017-09-21 Mediatek Inc. Selective execution of ahead-of-time compiled code
US10929160B1 (en) * 2018-12-12 2021-02-23 The Mathworks, Inc. Composite-trace just-in-time compilation

Also Published As

Publication number Publication date
KR20200057301A (ko) 2020-05-26
EP3654176A3 (en) 2020-06-10
US20200159554A1 (en) 2020-05-21
EP3654176B1 (en) 2023-01-04
WO2020101288A1 (en) 2020-05-22
US11194603B2 (en) 2021-12-07
EP3654176A2 (en) 2020-05-20
KR102663196B1 (ko) 2024-05-07

Similar Documents

Publication Publication Date Title
US20200364085A1 (en) Task scheduling based on performance control conditions for multiple processing units
CN106293507B (zh) 具有外部存储器的电子设备及操作电子设备的方法
US20210223927A1 (en) Electronic device and method for displaying application used therein
US10853503B2 (en) Selective encoding method and electronic device using same
CN109918166B (zh) 小程序处理方法、装置及电子设备
US10402222B2 (en) Task migration method and apparatus
US20160055082A1 (en) Memory allocating method and electronic device supporting the same
EP3121700A1 (en) Electronic device and method for managing object in folder on electronic device
US10209915B2 (en) Electronic device and file read and write method thereof
US10489135B2 (en) Electronic device and method for improving installation speed of theme package
CN105809028B (zh) 在移动设备中运行相同应用的多个实例的装置和方法
US20170083261A1 (en) Electronic device and method of analyzing fragmentation of electronic device
US20160253318A1 (en) Apparatus and method for processing text
US20160357473A1 (en) Electronic device and method of managing memory of electronic device
WO2015074526A1 (en) Method and apparatus for injecting java by tecode into target process
CN114691300A (zh) 一种虚拟机实例的热迁移方法
US11194603B2 (en) User equipment, server, control method of the user equipment and control method of the server for performing ahead-of-time (AOT) compilation of an application based on usage frequency
US10482237B2 (en) Method for processing security of application and electronic device supporting the same
US20150356112A1 (en) Method and electronic device for processing data
US20210405987A1 (en) Dynamic driver selection based on firmware for a hardware component
KR20160059252A (ko) 인텐트 처리 방법 및 그 전자 장치
KR102188685B1 (ko) 애플리케이션 패키지를 생성하는 장치 및 방법
CN116028267A (zh) 双系统安全手机重置方法、装置、服务器及存储介质
CN111399926A (zh) 下载启动程序的方法和装置
US9928090B2 (en) Method for processing dynamic language and electronic device using the same

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