CN116438513A - 电子装置和管理电子装置的存储器的方法 - Google Patents
电子装置和管理电子装置的存储器的方法 Download PDFInfo
- Publication number
- CN116438513A CN116438513A CN202180074380.1A CN202180074380A CN116438513A CN 116438513 A CN116438513 A CN 116438513A CN 202180074380 A CN202180074380 A CN 202180074380A CN 116438513 A CN116438513 A CN 116438513A
- Authority
- CN
- China
- Prior art keywords
- processor
- memory
- electronic device
- objects
- storage space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title description 11
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 230000000593 degrading effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 44
- 230000008859 change Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000006731 degradation reaction Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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
- G06F8/4434—Reducing the memory space required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
根据各种实施例,电子装置包括至少一个处理器和用于存储可由处理器执行的指令的存储器。其中,处理器可以:监测关于存储器的存储空间的信息和由处理器执行的多个对象的使用历史;基于该信息和该使用历史中的一者或两者,在多个对象中确定其编译方案将被改变的目标对象;以及通过改变目标对象的编译方案来增加存储器的空闲存储空间。其他实施例是可能的。
Description
技术领域
以下实施例涉及电子装置和管理电子装置的存储器的方法。
背景技术
当终端的存储空间不足时,终端的整体性能可能会根据存储空间的状态而下降。因此,需要根据存储空间的状态抢先确保空闲存储空间,并且可能需要使终端的性能下降减到最低程度。
可能需要一种在监测终端的存储状态的同时,通过依据要执行的对象改变对象的编译方案来确保存储空间并使性能下降减到最低程度的方法。
发明内容
技术问题
使用即时(JIT)和提前编译的组合来生成在运行时加载的包的编译工件文件。要编译的包的运行时性能和编译工件文件的大小可以根据编译过滤器的类型而变化,这是编译的属性之一。
包的性能可以根据编译工件文件而变化,并且当终端的存储空间不足时,终端的整体性能也可能下降。
根据终端的存储空间的状态,可能需要抢先确保空闲存储空间。
技术方案
根据各种实施例,一种电子装置可以包括:至少一个处理器;以及存储器,所述存储器被配置为存储将由所述处理器执行的指令。其中,所述处理器可以被配置为:监测关于所述存储器的存储空间的信息和由所述处理器执行的多个对象的使用历史;基于所述信息或所述使用历史中的至少一者或两者,在所述多个对象中确定其编译方案将被改变的目标对象;以及通过改变所述目标对象的编译方案来增加所述存储器的空闲存储空间。
根据各种实施例,一种电子装置可以包括:至少一个处理器;以及存储器,所述存储器被配置为存储将由所述处理器执行的指令。其中,所述处理器可以被配置为:监测关于所述存储器的存储空间的信息;基于由所述处理器执行的多个对象,生成包括所述多个对象中的至少一些对象的对象列表;以及通过改变所述对象列表中包括的至少一个对象的编译方案来增加所述存储器的空闲存储空间。
根据各种实施例,一种管理电子装置的存储器的方法可以包括:监测关于所述存储器的存储空间的信息和由所述电子装置执行的多个对象的使用历史;基于所述信息和所述使用历史,在所述多个对象中确定其编译方案将被改变的目标对象;以及通过改变所述目标对象的编译方案来增加所述存储器的空闲存储空间。
发明的有益效果
根据各种实施例,电子装置可以根据存储器的存储空间的状态来确定对象的重要性,并且可以通过分阶段地改变对象的编译方案来确保存储器的空闲存储空间,同时保持电子装置的性能。
根据各种实施例,电子装置可以通过减小编译工件文件(其在存储空间不足的情况下不能被用户任意减小)的大小来确保空闲存储空间。
根据各种实施例,电子装置可以通过根据存储空间的状态分阶段地改变编译方案并在用户体验到迟缓之前抢先确保空闲存储空间来增强用户体验。
附图说明
图1是根据各种实施例的网络环境中的电子装置的框图。
图2是示出根据各种实施例的管理电子装置的存储器的操作的示图。
图3是根据各种实施例的监测存储器的存储空间的操作的示例。
图4是根据各种实施例的监测存储器的存储空间的操作的另一示例。
图5是示出根据各种实施例的管理电子装置的存储器的操作的流程图。
图6示出了根据各种实施例的提高电子装置的电子装置性能的操作。
图7是示出根据各种实施例的电子装置的操作的流程图。
具体实施方式
图1是根据各种实施例的网络环境100中的电子装置101的框图。参考图1,网络环境100中的电子装置101可以经由第一网络198(例如,短距离无线通信网络)与电子装置102通信,或者经由第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108中的至少一者进行通信。根据实施例,电子装置101可以经由服务器108与电子装置104通信。根据实施例,电子装置101可以包括处理器120、存储器130、输入模块150、声音输出模块155、显示模块160、音频模块170、传感器模块176、接口177、连接端178、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(SIM)196或天线模块197。在一些实施例中,可以从电子装置101中省略至少一个上述组件(例如,连接端178),或者可以向电子装置101添加一个或更多个其他组件。在一些实施例中,一些组件(例如,传感器模块176、相机模块180或天线模块197)可以集成为单个组件(例如,显示模块160)。
处理器120可执行例如软件(例如,程序140)来控制电子装置101的与处理器120连接的至少一个其他组件(例如,硬件组件或软件组件),并可执行各种数据处理或计算。根据实施例,作为数据处理或计算的至少部分,处理器120可以将从另一组件(例如,传感器模块176或通信模块190)接收到的命令或数据存储到易失性存储器132中,对存储在易失性存储器132中的命令或数据进行处理,并将结果数据存储在非易失性存储器134中。根据实施例,处理器120可以包括主处理器121(例如,中央处理器(CPU)或应用处理器(AP))以及与主处理器121在操作上独立的或者相结合的辅助处理器123(例如,图形处理单元(GPU)、神经处理单元(NPU)、图像信号处理器(ISP)、传感器中枢处理器或通信处理器(CP))。例如,当电子装置101包括主处理器121和辅助处理器123时,辅助处理器123可被适配为比主处理器121耗电更少,或者被适配为具体用于指定功能。辅助处理器123可以与主处理器121分开实现,或者实现为主处理器121的部分。
在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123可控制与电子装置101(而非主处理器121)的组件之中的至少一个组件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的组件之中的至少一个组件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可以将辅助处理器123(例如,ISP或CP)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。根据实施例,辅助处理器123(例如,NPU)可以包括为人工智能(AI)模型处理指定的硬件结构。AI模型可以通过机器学习来生成。这种学习可以例如由执行AI的电子装置101或经由单独的服务器(例如,服务器108)来执行。学习算法可以包括但不限于例如监督学习、无监督学习、半监督学习或强化学习。AI模型可以包括多个人工神经网络层。人工神经网络可以包括例如深度神经网络(DNN)、卷积神经网络(CNN)、递归神经网络(RNN)、受限玻尔兹曼机器(RBM)、深度信念网络(DBN)、双向递归深度神经网络(BRDNN)、深度Q网络或其中两种或更多种的组合,但不限于此。AI模型可以附加地或替代地包括除硬件结构之外的软件结构。
存储器130可以存储由电子装置101的至少一个组件(例如,处理器120或传感器模块176)使用的各种数据。各种数据可以包括例如软件(例如,程序140)和与其相关的命令的输入数据或输出数据。存储器130可以包括易失性存储器132或非易失性存储器134。
可以将程序140作为软件存储在存储器130中,并且程序140可以包括例如操作系统(OS)142、中间件144或应用146。
输入模块150可以从电子装置101的外部(例如,用户)接收将由电子装置101的另一组件(例如,处理器120)使用的命令或数据。输入模块150可以包括例如麦克风、鼠标、键盘、按键(例如按钮)或数字笔(例如手写笔)。
声音输出模块155可以向电子装置101的外部输出声音信号。声音输出模块155可以包括例如扬声器或接收器。扬声器可以用于诸如播放多媒体或播放录音的通用目的。该接收器可以用于接收呼入。根据实施例,可以将接收器实现为与扬声器分离,或实现为扬声器的部分。
显示模块160可以向电子装置101的外部(例如,用户)可视地提供信息。显示模块160可以包括例如显示器、全息装置或投影仪以及控制显示器、全息装置和投影仪中相应一者的控制电路。根据实施例,显示模块160可以包括适于感测触摸的触摸传感器,或者适于测量由触摸引起的力的强度的压力传感器。
音频模块170可以将声音转换成电信号,反之亦可。根据实施例,音频模块170可以经由输入模块150获得声音,或者经由声音输出模块155或与电子装置101直接或无线连接的外部电子装置(例如,诸如扬声器或耳机的电子装置102)输出声音。
传感器模块176可以检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后生成与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可以包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物计量传感器、温度传感器、湿度传感器或照度传感器。
接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,通过有线)或无线连接的一个或更多个特定协议。根据实施例,接口177可以包括例如高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端178可以包括连接器,其中,电子装置101可以经由该连接器与外部电子装置(例如,电子装置102)物理地连接。根据实施例,连接端178可包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块179可以将电信号转换成可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可以包括例如电机、压电元件或电刺激器。
相机模块180可捕获静止图像和运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、ISP或闪光灯。
电力管理模块188可以管理对电子装置101的供电。根据实施例,电力管理模块188可以被实现为例如电力管理集成电路(PMIC)的至少一部分。
电池189可以向电子装置101的至少一个组件供电。根据实施例,电池189可以包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。
通信模块190可以支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(AP))独立操作的一个或更多个CP,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可以包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块194(例如,局域网(LAN)通信模块、或电力线通信(PLC)模块)。这些通信模块中对应的一个可以经由第一网络198(例如,诸如BluetoothTM、无线保真(Wi-Fi)direct或红外数据协会(IrDA)的短距离通信网络)或第二网络199(例如,诸如传统蜂窝网络、5G网络、下一代通信网络、互联网或计算机网络(例如,LAN或广域网(WAN))的长距离通信网络)与外部电子装置104进行通信。可以将这些各种类型的通信模块实现为单个组件(例如,单个芯片),或可以将这些各种类型的通信模块实现为彼此分离的多个组件(例如,多个芯片)。无线通信模块192可使用存储在SIM 196中的用户信息(例如,国际移动用户识别码(IMSI))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。
无线通信模块192可以支持4G网络之后的5G网络和下一代通信技术,例如新无线电(NR)接入技术。NR接入技术可以支持增强型移动宽带(eMBB)、大规模机器类型通信(mMTC)或超可靠低延迟通信(URLLC)。无线通信模块192可以支持高频带(例如,毫米波带)以实现例如高数据传输速率。无线通信模块192可以支持用于确保高频带上的性能的各种技术,例如波束成形、大规模多输入多输出(MIMO)、全维MIMO(FD-MIMO)、阵列天线、模拟波束成形或大规模天线。无线通信模块192可以支持在电子装置101、外部电子装置(例如,电子装置104)或网络系统(例如,第二网络199)中指定的各种要求。根据实施例,无线通信模块192可以支持用于实现eMBB的峰值数据速率(例如,20Gbps或更高)、用于实现mMTC的丢失覆盖(例如,164dB或更低)、或者用于实现URLLC的U平面延迟(例如,下行链路(DL)和上行链路(UL)中的每一者的0.5ms或更低,或者1ms或更低的往返)。
天线模块197可以将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可以包括天线,该天线包括辐射元件,该辐射元件包括形成在基底(例如,印刷电路板(PCB))中或形成在基底上的导电材料或导电图案。根据实施例,天线模块197可以包括多个天线(例如,阵列天线)。在此情况下,可由例如通信模块190从所述多个天线中选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。可以经由至少一个选择的天线在通信模块190与外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另外的组件(例如,射频集成电路(RFIC))可附加地形成为天线模块197的一部分。
根据实施例,天线模块197可以形成毫米波天线模块。根据实施例,毫米波天线模块可以包括PCB、设置在PCB的第一表面(例如,底表面)上或者与第一表面相邻并且能够支持指定高频带(例如,毫米波带)的RFIC、以及设置在PCB的第二表面(例如,顶表面或者侧表面)上或者与第二表面相邻并且能够发送或者接收指定高频带的信号的多个天线(例如,阵列天线)。
上述组件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))相互连接并在其之间通信地传送信号(例如,命令或数据)。
根据实施例,可经由与第二网络199连接的服务器108在电子装置101与外部电子装置104之间发送或接收命令或数据。电子装置102和电子装置104中的每一者可以是与电子装置101相同类型的装置,或者是与电子装置101不同类型的装置。根据实施例,要由电子装置101执行的所有或一些操作可以在一个或更多个外部电子装置(例如,外部电子装置102和104,以及服务器108)上执行。例如,如果电子装置101需要自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子装置101可请求该一个或更多个外部电子装置执行该功能或服务中的至少部分,而不是运行该功能或服务,或者电子装置101除了运行该功能或服务以外,还可请求该一个或更多个外部电子装置执行该功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子装置可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并且可以将执行的结果传送到电子装置101。电子装置101可在对该结果进行进一步处理的情况下或者在不对该结果进行进一步处理的情况下将该结果提供作为对该请求的至少部分答复。为此,例如,可以使用云计算技术、分布式计算技术、移动边缘计算(MEC)技术或客户端-服务器计算技术。电子装置101可以使用例如分布式计算或MEC来提供超低延迟服务。在另一个实施例中,外部电子装置104可以包括物联网(IoT)装置。服务器108可以是使用机器学习和/或神经网络的智能服务器。根据实施例,外部电子装置104或服务器108可以包括在第二网络199中。电子装置101可以应用于基于5G通信技术或物联网相关技术的智能服务(例如,智能家居、智慧城市、智能汽车或医疗保健)。
图2是示出根据各种实施例的管理电子装置的存储器的操作的示图。
参考图2,根据各种实施例,电子装置(例如,图1的电子装置101)可以包括至少一个处理器120和存储器130,该存储器130存储有要由处理器120执行的指令。
根据各种实施例,当存储器130的存储空间不足时,根据存储介质(例如,存储器130)的规格,输入/输出(I/O)处理可能变慢并变得迟缓。在此情况下,处理器120可以确保存储器130的空闲存储空间,以使电子装置101的整体性能正常化。处理器120可以通过改变用户不可见的文件的编译方案并执行重新编译来增加空闲存储空间。例如,处理器120可以通过改变对象的编译方案来减小编译工件文件的大小并增加空闲存储空间。因此,处理器120可以有效地确保存储器130的空闲存储空间,同时使电子装置101的性能下降最小化。
根据各种实施例,处理器120可以从存储器130接收关于存储空间的信息,并在由处理器120执行的多个对象中确定其编译方案将被改变的目标对象。对象可以包括由处理器120执行的服务、包或程序(例如,图1的程序140)。例如,该对象可以包括应用(例如,图1的应用146)和该应用的包。该应用的包可以包括可执行文件。
根据各种实施例,处理器120可以改变目标对象的编译方案,然后通过执行重新编译来生成重新编译的文件。处理器120可以通过将重新编译的文件发送到存储器130来增加空闲存储空间。处理器120可以将重新编译的文件发送到存储器130,并通过更新利用现有方法编译的文件来增加空闲存储空间。
根据各种实施例,处理器120可以监测关于存储器130的存储空间的信息和由处理器120执行的多个对象的使用历史。关于存储空间的信息可包括存储器130的空闲存储空间与总存储空间的比率以及存储器130的空闲存储空间的大小。多个对象的使用历史可以包括多个对象未被使用的时段。
根据各种实施例,处理器120可以基于关于存储空间的信息或多个对象的使用历史中的至少一者或两者,在多个对象中确定其编译方案将被改变的目标对象。
根据各种实施例,处理器120可以基于存储器130的空闲存储空间,在多个对象中确定在第一时段期间未被使用的对象为第一目标对象。处理器120可以将在比第一时段短的第二时段期间未被使用的对象确定为第二目标对象。例如,第一时段可以是30天,第二时段可以是15天。
根据各种实施例,处理器120可以基于存储器130的空闲存储空间,在多个对象中确定在显示器上没有图标的对象为目标对象。
根据各种实施例,处理器120可以基于存储器130的空闲存储空间将多个对象中的所有对象确定为目标对象。当存储器130的空闲存储空间与总存储空间的比率小于比率阈值(例如,图5的第二阈值)时,处理器120可以将多个对象中的所有对象确定为目标对象。当存储器130的空闲存储空间与存储空间的比率小于比率阈值时,处理器120可以通过改变多个对象中的所有对象的编译方案来增加空闲存储空间。例如,比率阈值可以是2%。
根据各种实施例,处理器120可以基于由处理器120执行的多个对象的使用历史来生成包括多个对象中的至少一些对象的对象列表。
根据各种实施例,处理器120可以通过改变目标对象的编译方案来增加存储器130的空闲存储空间。当存储器130的空闲存储空间小于大小阈值(例如,图5的第一阈值)时,处理器120可以通过改变尚未被改变的对象的编译方案来增加空闲存储空间。大小阈值可以是由电子装置101预先确定的值。例如,大小阈值可以是500兆字节(MB)。
根据各种实施例,处理器120可以通过基于关于存储器130的存储空间的信息改变对象列表中包括的至少一个对象的编译方案来增加存储器130的空闲空间。处理器120可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象。处理器120可以生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。
根据各种实施例,处理器120可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。
根据各种实施例,处理器120可以将目标对象的编译过滤器降级。处理器120可以通过基于降级后的编译过滤器对目标对象进行重新编译来增加空闲存储空间。处理器120可以通过考虑电子装置101的状态来指定在后台执行重新编译的AP核心,从而使性能的下降最小化。
根据各种实施例,处理器120可以基于存储器130的空闲存储空间与总存储空间的比率来确定其编译方案将被改变的对象列表。处理器120可以通过改变所确定的对象列表中包括的对象的编译方案来增加空闲存储空间。
根据各种实施例,处理器120可以确定电子装置101是否在使用中,并且当电子装置101不在使用中时,处理器120可以通过改变目标对象的编译方案来增加存储器130的空闲存储空间。改变目标对象的编译方案的操作可以在后台执行。
图3和图4是根据各种实施例的监测存储器的存储空间的操作的示例。
参考图3和图4,根据各种实施例,处理器(例如,图1的处理器120)可以监测关于存储器(例如,图1的存储器130)的存储空间的信息。处理器120可以监测存储器130的存储空间不足的状态310。处理器120可以通过存储服务330监测关于存储器130的存储空间的信息。
根据各种实施例,存储服务330可以通过监测存储器130检测到存储空间不足的状态。存储服务330可以向运行时(Runtime)350发送消息(例如,意图)。在计算机科学中,运行时350可以是正在执行计算机程序时的操作。运行时350可以包括运行时库,该运行时库指示由预定编译器或虚拟机用来管理以计算机语言编写的程序的基本代码的库或程序。例如,运行时350可以包括Android运行时(ART)、Java虚拟机(JVM)或Dalvik VM。
根据各种实施例,运行时350可以使用各种方案来执行编译。运行时350可以使用即时(JIT)方案、提前(AOT)方案或者JIT方案和AOT方案的混合组合来执行编译。例如,ART可以通过由作为JIT方案和AOT方案的混合的dex2oat工具执行编译来生成在运行时加载的对象的编译工件文件。
根据各种实施例,JIT方案可以是在适当的时间执行编译方案。在JIT方案中,当在执行用于加载类别的解释器方案的同时检测到重复执行时,可以运行JIT编译器来提高执行速度。在JIT方案中,本机代码可以被非常快速地执行,并且由于存储器被缓存,所以当执行重复调用时,可以使性能最大化。在JIT方案中,由于编译为本机代码是在运行时执行的,因此可以缩短安装时间。
根据各种实施例,AOT方案可以是将源代码转换成本地代码、在安装对象时存储本机代码、以及在执行对象时读取本地代码的方案。在AOT方案中,由于在安装对象时转换代码,因此与在第一次执行对象时转换代码的方案相比,可以通过减少第一次执行对象的时间来提高速度。
根据各种实施例,处理器120可以使用JIT方案和AOT方案的混合组合来执行编译。处理器120可使用JIT方案首次安装对象,以减少安装时间和所需的存储容量,并可以通过解释器根据用户模式存储简档。在存储简档之后,作业调度器启动AOT后台服务守护程序,并且当满足预定条件时,处理器120可以生成通过在后台编译来编译的代码(例如,oat文件)。当驱动对象时,处理器120可以直接使用在编译的ART运行时中编译的代码,而不用通过解释器。
根据各种实施例,处理器120可以监测存储空间不足的状态410。处理器120可以通过存储空间监测服务430来监测存储器130的存储空间。存储空间监测服务430可以监测存储空间不足的状态410。存储空间监测服务430可以向运行时450发送消息(例如,意图)。
图5是示出根据各种实施例的管理电子装置的存储器的操作的流程图。图5的操作510至560可以顺序地执行,但是不一定要顺序地执行。例如,操作510至560可以以不同的顺序执行,并且至少两个操作可以并行地执行。
参考图5,根据各种实施例,处理器(例如,图1的处理器120)可以监测关于存储器(例如,图1的存储器130)的存储空间的信息和由处理器120执行的多个对象的使用历史。
根据各种实施例,处理器120可以通过运行时510和对象管理器520来监测对象。运行时510可以向对象管理器520发送对对象列表的请求。对象管理器520可以通过监测多个对象来生成需要被优化的对象的对象列表,并将生成的对象列表发送到运行时510。
根据各种实施例,对象管理器520可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象,并生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。例如,第一时段可以是30天,第二时段可以是15天。
根据各种实施例,对象管理器520可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。
根据各种实施例,处理器120可以监测关于存储器130的存储空间的信息。处理器120可以通过监测来检测存储空间不足的状态。当检测到存储空间不足的状态时,在操作530中,处理器120可以暂停后台编译。例如,处理器120可以暂停后台dexopt(后台dex优化)。处理器120可以暂停后台dexopt,直到确保存储器130的空闲存储空间达到预定的存储容量。
根据各种实施例,后台dexopt可以是基于当电子装置(例如,图1的电子装置101)被使用时生成的简档,使用dex2oat工具在后台编译Android应用包(APK)中的dex文件的过程。处理器120可以通过后台dexopt执行编译来重新生成编译工件文件。
根据各种实施例,编译工件文件可以包括.vdex、.odex、.oat或.art文件。.vdex文件可以包括APK的未压缩代码和附加元数据。.odex和/或.oat文件可以包括APK中定义的方案的AOT编译代码。.art文件可以包括APK的.dex中列出的一些字符串和类别的内部表示。例如,处理器120可以通过后台dexopt重新生成.oat文件或.art文件。
根据各种实施例,对象的性能可以根据编译方案或类别而变化。后台dexopt可以由作业调度器执行。
根据各种实施例,在操作540中,处理器120可以确定空闲存储空间是否大于或等于第一阈值。例如,处理器120可以确定空闲存储空间是否大于或等于500MB。
根据各种实施例,在操作550中,当空闲存储空间大于或等于第一阈值时,处理器120可以改变对象列表的对象的编译方案。当电子装置101不在使用中时,处理器120可以在后台改变对象列表中包括的对象的编译方案。
根据各种实施例,当空闲空间大于或等于第一阈值时,处理器120可以基于生成的对象列表分阶段地修改对象的编译方案。处理器120可以将编译方案将被改变的目标对象的编译过滤器降级,并通过基于所降级的编译过滤器对目标对象进行重新编译来增加空闲存储空间。例如,处理器120可以通过对编译过滤器进行降级并执行重新编译,将对象的空闲存储空间增加100到200MB的空闲存储空间。
根据各种实施例,处理器120可以在运行时(例如,ART)使用dex2oat工具编译dex文件。处理器120可以通过改变编译过滤器(或编译过滤器选项)来改变编译方案。表1中示出了编译过滤器的类型。
[表1]
编译过滤器 | 描述 |
从apk运行 | 使用APK中的dex文件执行对象 |
提取 | 只解压APK中的dex文件,并将其复制到预定的路径 |
验证 | 只运行dex代码验证 |
加快 | 运行dex代码验证并优化一些dex指令 |
速度简档 | 运行dex代码验证并对简档中的方案进行AOT编译 |
速度 | 运行dex代码验证并对所有方案进行AOT编译 |
根据各种实施例,表1可以按照降级到升级的编译过滤器的顺序列出编译过滤器。换句话说,对编译过滤器进行降级可能意味着编译过滤器的类型被改变为在表1中相对较高的行中列出的编译过滤器。
根据各种实施例,根据编译过滤器的类型,通过dex2oat工具编译的对象的运行时性能可以变化,并且所生成的编译工件文件(例如.odex文件或.art文件)的大小可以变化。编译工件文件的大小可以根据对象的类型而变化,并且大小的范围可以从0MB到数百MB。处理器120可以通过改变编译过滤器的类型来防止由于存储器130的存储空间不足而导致的电子装置101的性能下降。
根据各种实施例,处理器120可以通过基于对象的重要性生成对象列表,以及通过根据存储器130的空闲存储空间的大小分阶段地改变编译过滤器的类型以确保空闲存储空间,来使性能下降最小化。
根据各种实施例,处理器120可以通过对编译过滤器进行降级来改变编译方案。处理器120可以通过对编译过滤器进行降级并执行重新编译来重新生成编译工件文件。由于重新生成的编译工件文件具有比重新编译之前的编译工件文件更小的容量,所以存储器130的空闲存储空间可以增加。
根据各种实施例,处理器120可以根据存储器130的空闲存储空间与总存储空间的比率来改变包括在不同对象列表中的对象的编译方案。当电子装置101不在使用中时,可以在后台改变对象列表中包括的对象的编译方案。
根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第一比率时,处理器120可以改变包括在第一对象列表中的对象的编译方案。例如,当空闲存储空间与总存储空间的比率小于5%时,在操作551中,处理器120可以改变30天内未使用的对象的编译方案。
根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第二比率时,处理器120可以改变包括在第三对象列表中的对象的编译方案。例如,当空闲存储空间与总存储空间的比率小于4%时,在操作553中,处理器120可以改变没有图标的对象的编译方案。
根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第三比率时,处理器120可以改变包括在第二对象列表中的对象的编译方案。例如,当空闲存储空间与总存储空间的比率小于3%时,在操作555中,处理器120可以改变15天内未使用的对象的编译方案。
根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第四比率(例如,图2的第二阈值)时,处理器120可以编译所有对象的方案。所有对象可以包括未包括在第一对象列表、第二对象列表和第三对象列表中的对象。例如,当空闲存储空间与总存储空间的比率小于2%时,在操作557中,处理器120可以改变所有对象(或者未包括在第一对象列表、第二对象列表和第三对象列表中的对象)的编译方案。
根据各种实施例,当存储器130的空闲存储空间小于第一阈值时,在操作560中,处理器120可以在后台改变尚未被改变的对象的编译方案。当存储器130的空闲存储空间小于第一阈值时,处理器120可以通过改变尚未被改变的对象的编译方案来增加空闲存储空间。处理器120可以在前台对其中编译方案尚未被改变的对象的编译方案执行改变的操作。
根据各种实施例,处理器120可以通过根据存储器130的空闲存储空间的状态分阶段地改变对象列表的对象的编译方案来确保存储器130的空闲存储空间,而无需电子装置101的用户的单独控制。处理器120可以延迟频繁使用的对象的编译方案被降级的时间点,以防止用户频繁使用的对象的性能下降,从而提高用户体验。
图6示出了根据各种实施例的提高电子装置的电子装置性能的操作。
参考图6,根据各种实施例,当存储器610(例如,图1的存储器130)的空闲存储空间达到预定值或更大时,处理器(例如,图1的处理器120)可以恢复其中编译方案已经被改变的对象的编译方案。当存储器610的空闲存储空间与总存储空间的比率达到预定值或更大时,处理器120可以恢复编译方案。
根据各种实施例,运行时630可以从存储器610接收关于空闲存储空间的信息。运行时630可以确定存储器610的空闲存储空间与总存储空间的比率是否大于或等于预定值。例如,预定值可以是10%。
根据各种实施例,当空闲存储空间与总存储空间的比率达到预定值或更大时,处理器120可以改变或恢复对象的编译方案。例如,当存储器610的空闲存储空间与总存储空间的比率为10%或更大时,在操作650中,处理器120可以通过运行时630改变(或恢复)所有对象的编译方案。当电子装置(例如,图1的电子装置101)不在使用中时,编译方案的恢复可以在后台执行。
根据各种实施例,当存储器610的空闲存储空间与总存储空间的比率达到预定值或更大时,处理器120可以通过对所降级的编译过滤器进行升级来重新编译所降级的编译过滤器。表2可以根据编译过滤器的类型示出编译工件文件的大小。
[表2]
根据各种实施例,处理器120可以通过将编译过滤器的类型从“验证”恢复到“速度简档”并执行重新编译来提高对象的性能。表3可以示出当用“速度简档”执行编译时对象的进入时间和可用存储空间的大小,表4可以示出当用“验证”执行编译时对象的进入时间和可用存储空间的大小。
[表3]
项目 | |
重新进入计数 | 25.2 |
平均进入速度 | 401ms |
平均可用存储器 | 3101MB |
平均空闲存储器 | 663MB |
平均缓存存储器 | 2437MB |
平均交换使用存储器 | 1039MB |
[表4]
根据各种实施例,当存储器610的空闲存储空间不足时,处理器120可以通过对编译过滤器进行降级来防止电子装置101变得迟缓,并且当空闲存储空间充足时,处理器120可以恢复编译过滤器。因此,可以提高对象的性能,并且可以稳定地保证电子装置101和对象的性能。
图7是示出根据各种实施例的电子装置的操作的流程图。图7的操作710至750可以顺序地执行,但是不一定要顺序地执行。例如,操作710至750可以以不同的顺序执行,并且至少两个操作可以并行地执行。
参考图7,根据各种实施例,在操作710中,处理器(例如,图1的处理器120)可以监测关于存储器(例如,图1的存储器130)的存储空间的信息和由电子装置执行的多个对象的使用历史。关于存储空间的信息可包括存储器130的空闲存储空间与总存储空间的比率以及存储器130的空闲存储空间的大小。多个对象的使用历史可以包括多个对象未被使用的时段。
根据各种实施例,在操作730中,处理器120可以基于关于存储空间的信息和多个对象的使用历史,在多个对象中确定其编译方案将被改变的目标对象。处理器120可以基于存储器130的空闲存储空间,将多个对象中的在第一时段期间未被使用的对象确定为第一目标对象,并将在比第一时段短的第二时段期间未被使用的对象确定为第二目标对象。处理器120可以基于存储器130的空闲存储空间,将多个对象中的在显示器上没有图标的对象确定为目标对象。处理器120可以基于存储器130的空闲存储空间将多个对象中的所有对象确定为目标对象。当存储器130的空闲存储空间与存储空间的比率小于第二阈值时,处理器120可以将多个对象中的所有对象确定为目标对象。
根据各种实施例,处理器120可以基于由处理器120执行的多个对象的使用历史来生成包括多个对象中的至少一些对象的对象列表。处理器120可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象,并生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。处理器120可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。
根据各种实施例,在操作750中,处理器120可以通过改变目标对象的编译方案来增加存储器130的空闲空间。处理器120可以通过对目标对象的编译过滤器进行降级并基于所降级的编译过滤器对目标对象进行重新编译来增加空闲存储空间。
根据各种实施例,处理器120可以基于存储器130的空闲存储空间与总存储空间的比率来确定其编译方案将被改变的对象列表,并通过改变所确定的对象列表中包括的对象的编译方案来增加空闲存储空间。
根据各种实施例,处理器120可以确定电子装置是否在使用中,并且当电子装置不在使用中时,处理器120可以通过改变目标对象的编译方案来增加空闲存储空间。改变目标对象的编译方案的操作可以在后台执行。
根据各种实施例,当存储器130的空闲存储空间小于第一阈值时,处理器120可以通过改变其中编译方案尚未被改变的对象的编译方案来增加空闲存储空间。
根据各种实施例,电子装置(例如,图1的电子装置101)可以包括至少一个处理器(例如,图1的处理器120)和被配置成存储要由处理器执行的指令的存储器(例如,图1的存储器130),其中处理器可以检测关于存储器的存储空间的信息和由处理器执行的多个对象的使用历史,基于信息或使用历史中的至少一者或两者,在多个对象中确定其编译方案将被改变的目标对象,并通过改变目标对象的编译方案来增加存储器的空闲存储空间。
根据各种实施例,该信息可以包括存储器的空闲存储空间与总存储空间的比率以及存储器的空闲存储空间的大小,并且该使用历史可以包括多个对象未被使用的时段。
根据各种实施例,当存储器的空闲存储空间小于第一阈值时,处理器可以通过改变其中编译方案尚未被改变的对象的编译方案来增加空闲存储空间。
根据各种实施例,处理器可以基于存储器的空闲存储空间将多个对象中的在第一时段期间未被使用的对象确定为第一目标对象,并将在比第一时段短的第二时段期间未被使用的对象确定为第二目标对象。
根据各种实施例,处理器可以基于存储器的空闲存储空间将多个对象中在显示器上没有图标的对象确定为目标对象。
根据各种实施例,处理器可以基于存储器的空闲存储空间将多个对象中的所有对象确定为目标对象。
根据各种实施例,当存储器的空闲存储空间与存储空间的比率小于第二阈值时,处理器可以将多个对象中的所有对象确定为目标对象。
根据各种实施例,处理器可以通过将目标对象的编译过滤器进行降级并基于所降级的编译过滤器对目标对象进行重新编译来增加空闲存储空间。
根据各种实施例,处理器可以确定电子装置是否在使用中,并且当电子装置不在使用中时,处理器可以通过改变目标对象的编译方案来增加空闲存储空间。
根据各种实施例,改变目标对象的编译方案的操作可以在后台执行。
根据各种实施例,电子装置(例如,图1的电子装置101)可以包括至少一个处理器(例如,图1的处理器120)和被配置成存储要由处理器执行的指令的存储器(例如,图1的存储器130),其中处理器可以:监测关于存储器的存储空间的信息;基于由处理器执行的多个对象的使用历史来,生成包括多个对象中的至少一些对象的对象列表,以及通过基于该信息改变对象列表中包括的至少一个对象的编译方案来增加存储器的空闲存储空间。
根据各种实施例,该信息可以包括存储器的空闲存储空间与总存储空间的比率以及存储器的空闲存储空间的大小,并且该使用历史可以包括多个对象未被使用的时段。
根据各种实施例,当存储器的空闲存储空间小于第一阈值时,处理器可以通过改变其中编译方案尚未被改变的对象的编译方案来增加空闲存储空间。
根据各种实施例,处理器可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象,并且生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。
根据各种实施例,处理器可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。
根据各种实施例,处理器可以基于存储器的空闲存储空间与总存储空间的比率来确定其编译方案将被改变的对象列表,并通过改变所确定的对象列表中包括的对象的编译方案来增加空闲存储空间。
根据各种实施例,当该比率小于第二阈值时,处理器可以通过改变多个对象中的所有对象的编译方案来增加空闲存储空间。
根据各种实施例,处理器可以将至少一个对象的编译过滤器降级,并通过基于降级后的编译过滤器对至少一个对象进行重新编译来增加空闲存储空间。
根据各种实施例,处理器可以确定电子装置是否在使用中,并且当电子装置不在使用中时,处理器可以通过改变至少一个对象的编译方案来增加空闲存储空间。
根据各种实施例,一种管理电子装置(例如,图1的电子装置101)的存储器(例如,图1的存储器130)的方法可以包括:监测关于存储器的存储空间的信息和由电子装置执行的多个对象的使用历史;基于该信息和使用历史在多个对象中确定其编译方案将被改变的目标对象;以及通过改变目标对象的编译方案来增加存储器的空闲存储空间。
根据各种实施例的电子装置可以是各种类型的电子装置之一。电子装置可以包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或家用电器装置。根据本公开的实施例,电子装置不限于以上所述的那些电子装置。
应该理解的是,本公开的各种实施例以及其中使用的术语并不意图将在此阐述的技术特征限制于具体实施例,而是包括针对相应实施例的各种改变、等同形式或替换形式。结合附图的描述,相同的附图标记可用于相同或相关的组件。将理解的是,与术语相应的单数形式的名词可以包括一个或更多个事物,除非相关上下文另有明确指示。如这里所使用的“A或B”、“A和B中的至少一者”、“A或B中的至少一者”、“A、B或C中的至少一者”以及“A、B或C中的至少一者”,其中的每一者可以包括在相应的一个短语中一起列出的任何一个项目,或者其所有可能的组合。诸如“第1”、“第2”、“第一”或“第二”之类的术语可以简单地用于将该组件与所讨论的其他组件区分开,并且不在其他方面(例如,重要性或顺序)限制该组件。将理解的是,在使用了术语“可操作地”或“通信地”的情况下或者在不使用术语“可操作地”或“通信地”的情况下,如果一元件(例如,第一元件)被称为“与另一元件(例如,第二元件)耦接”、“耦接到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或“连接到另一元件(例如,第二元件)”,则意味着该一元件可与该另一元件直接(例如,通过有线)耦接、与该另一元件无线地耦接、或经由第三元件与该另一元件耦接。
如结合本公开的实施例所使用的,术语“模块”可以包括以硬件、软件或固件实现的单元,并可以与其他术语(例如,“逻辑”、“逻辑区块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成组件或者是该单个集成组件的最小单元或部分。例如,根据实施例,可以以专用集成电路(ASIC)的形式来实现模块。
可将在此阐述的各种实施例实现为包括存储在存储介质(例如,内部存储器136或外部存储器138)中的可由机器(例如,电子装置101)读取的一个或更多个指令的软件(例如,程序140)。例如,机器(例如,电子装置101)的处理器(例如,处理器120)可以调用存储在存储介质中的一个或更多个指令中的至少一个指令并执行该至少一个指令。这使得该机器能够操作用于根据所调用的至少一个指令执行至少一个功能。该一个或更多个指令可以包括由编译器生成的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。本文中,术语“非暂时性”仅意味着该存储介质是有形装置,并且不包括信号(例如,电磁波),但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。
根据实施例,可以在计算机程序产品中包括和提供根据本公开的实施例的方法。计算机程序产品可作为产品在销售者与购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(CD-ROM))的形式来发布计算机程序产品,或者可经由应用商店(例如,PlayStoreTM)在线发布(例如,下载或上传)计算机程序产品,或者可直接在两个用户装置(例如,智能电话)之间分发(例如,下载或上传)计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时产生的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或转发服务器的存储器)中。
根据各种实施例,上述组件中的每个组件(例如,模块或程序)可以包括单个实体或多个实体,并且多个实体中的一些实体可以分开地设置在不同的组件中。根据各种实施例,可以省略一个或更多个上述组件或操作,或者可以添加一个或更多个其他组件或操作。替代地或附加地,多个组件(例如,模块或程序)可以集成到单个组件中。在此情况下,该集成组件可仍旧按照与该多个组件中的相应一个组件在集成之前执行一个或更多个功能相同或相同的方式,执行该多个组件中的每一个组件的该一个或更多个功能。根据各种实施例,由模块、程序或另一组件所执行的操作可顺序地、并行地、重复地或以启发式方式来执行,或者该操作中的一个或更多个操作可按照不同的顺序来执行或被省略,或者可添加一个或更多个其他操作。
Claims (15)
1.一种电子装置,所述电子装置包括:
至少一个处理器;以及
存储器,所述存储器被配置为存储将由所述处理器执行的指令,
其中,所述处理器被配置为:
监测关于所述存储器的存储空间的信息和由所述处理器执行的多个对象的使用历史,
基于所述信息或所述使用历史中的至少一者或两者,在所述多个对象中确定其编译方案将被改变的目标对象,以及
通过改变所述目标对象的所述编译方案,增加所述存储器的空闲存储空间。
2.根据权利要求1所述的电子装置,其中,
所述信息包括所述存储器的空闲存储空间与总存储空间的比率以及所述存储器的空闲存储空间的大小,并且
所述使用历史包括所述多个对象未被使用的时段。
3.根据权利要求1所述的电子装置,其中,所述处理器被配置为:当所述存储器的所述空闲存储空间小于第一阈值时,通过改变其中编译方案尚未被改变的对象的编译方案来增加所述空闲存储空间。
4.根据权利要求1所述的电子装置,其中,所述处理器被配置为:
基于所述存储器的所述空闲存储空间,将所述多个对象中在第一时段期间未被使用的对象确定为第一目标对象;以及
将在比所述第一时段短的第二时段期间未被使用的对象确定为第二目标对象。
5.根据权利要求1所述的电子装置,其中,所述处理器被配置为基于所述存储器的所述空闲存储空间,将所述多个对象中在显示器上没有图标的对象确定为所述目标对象。
6.根据权利要求4所述的电子装置,其中,所述处理器被配置为基于所述存储器的所述空闲存储空间,将所述多个对象全部确定为所述目标对象。
7.根据权利要求6所述的电子装置,其中,所述处理器被配置为当所述存储器的所述空闲存储空间与所述存储空间的比率小于第二阈值时,将所述多个对象全部确定为所述目标对象。
8.根据权利要求1所述的电子装置,其中,所述处理器被配置为:
对所述目标对象的编译过滤器进行降级;以及
通过基于降级后的编译过滤器对所述目标对象进行重新编译,增加所述空闲存储空间。
9.根据权利要求1所述的电子装置,其中,所述处理器被配置为:
确定所述电子装置是否在使用中;以及
当所述电子装置不在使用中时,通过改变所述目标对象的编译方案来增加所述空闲存储空间。
10.根据权利要求1所述的电子装置,其中,改变所述目标对象的编译方案的操作是在后台执行的。
11.一种电子装置,所述电子装置包括:
至少一个处理器;以及
存储器,所述存储器被配置为存储将由所述处理器执行的指令,
其中,所述处理器被配置为:
监测所述存储器的存储空间,
基于由所述处理器执行的多个对象的使用历史,生成包括所述多个对象中的至少一些对象的对象列表,以及
通过基于所述信息改变所述对象列表中包括的至少一个对象的编译方案来增加所述存储器的空闲存储空间。
12.根据权利要求11所述的电子装置,其中,所述处理器被配置为:当所述存储器的所述空闲存储空间小于第一阈值时,通过改变其中编译方案尚未被改变的对象的编译方案来增加所述空闲存储空间。
13.根据权利要求11所述的电子装置,其中,所述处理器被配置为:
生成第一对象列表,所述第一对象列表包括所述多个对象中的在第一时段期间未被使用的对象;以及
生成第二对象列表,所述第二对象列表包括所述多个对象中的在比所述第一时段短的第二时段期间未被使用的对象。
14.根据权利要求11所述的电子装置,其中,所述处理器被配置为生成第三对象列表,所述第三对象列表包括所述多个对象中的在显示器上没有图标的对象。
15.根据权利要求11所述的电子装置,其中,所述处理器被配置为:
基于所述存储器的所述空闲存储空间与总存储空间的比率,确定其编译方案将被改变的对象列表;以及
通过改变所确定的对象列表中包括的对象的编译方案来增加所述空闲存储空间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210004097A KR20220101967A (ko) | 2021-01-12 | 2021-01-12 | 전자 장치 및 전자 장치의 메모리 관리 방법 |
KR10-2021-0004097 | 2021-01-12 | ||
PCT/KR2021/002226 WO2022154163A1 (ko) | 2021-01-12 | 2021-02-23 | 전자 장치 및 전자 장치의 메모리 관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116438513A true CN116438513A (zh) | 2023-07-14 |
Family
ID=82447432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180074380.1A Pending CN116438513A (zh) | 2021-01-12 | 2021-02-23 | 电子装置和管理电子装置的存储器的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230236744A1 (zh) |
EP (1) | EP4191393A4 (zh) |
KR (1) | KR20220101967A (zh) |
CN (1) | CN116438513A (zh) |
WO (1) | WO2022154163A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005301415A (ja) * | 2004-04-07 | 2005-10-27 | Ricoh Co Ltd | コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム |
US20060236310A1 (en) * | 2005-04-19 | 2006-10-19 | Domeika Max J | Methods and apparatus to iteratively compile software to meet user-defined criteria |
KR102101876B1 (ko) * | 2013-01-31 | 2020-04-21 | 삼성전자주식회사 | 애플리케이션들을 관리하는 방법 및 애플리케이션들의 관리를 수행하는 디바이스 |
KR102204047B1 (ko) * | 2013-08-28 | 2021-01-20 | 팬텍 주식회사 | 모바일 단말의 응용프로그램 저장공간 관리 장치 및 관리 방법 |
KR101611548B1 (ko) * | 2014-07-01 | 2016-04-14 | 네이버 주식회사 | 모바일 기기의 상태에 따른 최적화 방법과 시스템 및 기록 매체 |
CN107085548A (zh) * | 2016-02-16 | 2017-08-22 | 阿里巴巴集团控股有限公司 | 一种监控应用程序内存的方法、装置及电子设备 |
KR102150386B1 (ko) * | 2018-07-05 | 2020-09-01 | 서울대학교 산학협력단 | 전자 장치, 전자 장치의 컴파일링 방법 및 전자 장치의 동작 방법 |
-
2021
- 2021-01-12 KR KR1020210004097A patent/KR20220101967A/ko unknown
- 2021-02-23 EP EP21919792.8A patent/EP4191393A4/en active Pending
- 2021-02-23 WO PCT/KR2021/002226 patent/WO2022154163A1/ko unknown
- 2021-02-23 CN CN202180074380.1A patent/CN116438513A/zh active Pending
-
2023
- 2023-03-28 US US18/191,423 patent/US20230236744A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20220101967A (ko) | 2022-07-19 |
EP4191393A1 (en) | 2023-06-07 |
WO2022154163A1 (ko) | 2022-07-21 |
US20230236744A1 (en) | 2023-07-27 |
EP4191393A4 (en) | 2024-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230185554A1 (en) | Application installation method and electronic device for supporting same | |
US20230214262A1 (en) | Electronic device for managing memory, operation method of electronic device, and non-transitory storage medium | |
US11449318B2 (en) | Application optimization method and electronic device supporting the same | |
KR20220101847A (ko) | 전자 장치 및 전자 장치의 스토리지 운영 방법 | |
US20230168831A1 (en) | Electronic device and operation method of electronic device for managing storage space | |
US11875035B2 (en) | Electronic device and method for managing memory using the same | |
EP4283473A1 (en) | Device and method for reduction of garbage collection operations | |
US20220326964A1 (en) | Processor for initializing model file of application and electronic device including the same | |
EP4325363A1 (en) | Device for managing cache corruption, and operation method thereof | |
CN116438513A (zh) | 电子装置和管理电子装置的存储器的方法 | |
KR20220099322A (ko) | 전자 장치 및 이를 이용한 메모리 관리 방법 | |
KR20220162363A (ko) | 어플리케이션 업데이트 방법 및 그 전자 장치 | |
KR20220102421A (ko) | 전자 장치 및 전자 장치의 메모리 관리 방법 | |
US20230030132A1 (en) | Application optimization method and apparatus supporting the same | |
KR20220135560A (ko) | 메모리를 관리하기 위한 전자 장치 및 그의 동작 방법 | |
US12086420B2 (en) | Memory management method and electronic device | |
KR20240022948A (ko) | 지정된 이벤트에 기반하여 파일을 컴파일하기 위한 전자 장치 및 그 방법 | |
EP4261681A1 (en) | Electronic device and method for loading kernel module of electronic device | |
US20230305999A1 (en) | Method for performing integrity check, and electronic device using same | |
KR20230019619A (ko) | 어플리케이션 최적화 방법 및 이를 지원하는 장치 | |
KR20240010368A (ko) | 상호작용에 의해 획득된 순서에 기반하여 패키지들을 컴파일하는 전자 장치 및 방법 | |
KR20220077694A (ko) | 하이퍼바이저를 이용한 가상 머신 모니터링 방법 및 이를 지원하는 전자 장치 | |
KR20220127504A (ko) | 블록 장치 이미지에 대한 런타임 체크섬 검증을 수행하는 전자 장치 및 이의 동작 방법 | |
KR20220017309A (ko) | 가상 메모리의 할당 방법 및 이를 지원하는 전자 장치 | |
KR20220102489A (ko) | 예약 공간에 기반한 데이터베이스 업데이트 방법 및 장치 |
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 |