CN112445606B - 内存回收方法及装置 - Google Patents
内存回收方法及装置 Download PDFInfo
- Publication number
- CN112445606B CN112445606B CN201910812574.1A CN201910812574A CN112445606B CN 112445606 B CN112445606 B CN 112445606B CN 201910812574 A CN201910812574 A CN 201910812574A CN 112445606 B CN112445606 B CN 112445606B
- Authority
- CN
- China
- Prior art keywords
- memory
- application
- group
- waterline
- group information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 662
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004064 recycling Methods 0.000 title claims abstract description 44
- 238000011084 recovery Methods 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 101150053844 APP1 gene Proteins 0.000 description 3
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 3
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 3
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 3
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 1
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种内存回收方法及装置。该方法包括:监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线;根据所述应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将所述应用的内存水线传入内核空间,用于内核根据所述应用的内存水线执行内存回收。从而,可避免内存过度回收和回收不足的问题,提高应用的保活率。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种内存回收方法及装置。
背景技术
近年来,移动应用(application,APP)对内存的需求量日益增多,呈现逐年增长的趋势,而终端设备的内存容量有限,无法容纳大量应用常驻内存。因此,当内存不足时,系统将进行内存回收。
现有技术中,内存回收策略主要是基于内存水线设计,通过内核进程对系统内存占用信息进行监控,当监控到内存剩余空间低于内存水线中的低(low)水位则触发内存回收机制,例如根据优先级的高低将优先级最低的APP的文件页、匿名页从内存回收,并写回存储器件或进行数据压缩。然而,现有的内存回收策略有时满足不了实际需求。
发明内容
本申请提供一种内存回收方法及装置,提高内存回收的灵活性,可避免内存过度回收和回收不足的问题。
第一方面,本申请提供一种内存回收方法,包括:
监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线;
根据所述应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将所述应用的内存水线传入内核空间,用于内核根据所述应用的内存水线执行内存回收。
通过第一方面提供的内存回收方法,监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取该应用的内存水线,根据该应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。从而,针对不同内存需求的应用,可根据不同的内存水线进行内存回收,因此可避免内存过度回收和回收不足的问题,还可提高应用的保活率。
在一种可能的设计中,所述从预存的多套内存水线中获取所述应用的内存水线,包括:
从第一群组信息中查找所述应用所属的目标群组,所述第一群组信息包括群组内应用和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;或者,
根据所述应用的内存需求和第二群组信息确定所述应用所属的目标群组,所述第二群组信息包括群组内存需求范围和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线。
在一种可能的设计中,所述第一群组信息和所述第二群组信息是预先存储的。
在一种可能的设计中,所述根据所述应用的内存需求和预存的第二群组信息确定所述应用所属的目标群组,包括:
若所述应用的内存需求在一群组的内存需求范围内,则将所述群组确定为所述目标群组。
在一种可能的设计中,所述方法还包括:
获取预设时间内各个应用运行后的历史使用内存数据,所述历史使用内存数据为应用启动时所占内存,或者,所述历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和;
根据各个应用的历史使用内存数据分别预测各个应用的内存需求,所述内存需求为启动时所需内存;或者,所述内存需求为启动时所需内存和预期使用阶段增长内存之和;
根据预测的各个应用的内存需求获取所述第一群组信息或所述第二群组信息。
通过该实施方式提供的内存回收方法,在内存回收时考虑APP内存需求为启动时所需内存和预期使用阶段增长内存之和,可进一步提高内存回收的准确性。
在一种可能的设计中,所述根据预测的各个应用的内存需求获取所述第一群组信息,包括:
根据预测的各个应用的内存需求和所述多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到所述第一群组信息。
在一种可能的设计中,所述根据预测的各个应用的内存需求获取所述第二群组信息,包括:
根据预测的各个应用的内存需求和所述多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到所述第二群组信息。
在一种可能的设计中,所述方法还包括:
根据配置文件指示的群组内应用的更新,更新所述第一群组信息。
在一种可能的设计中,所述将所述应用的内存水线传入内核空间,包括:
第二方面,本申请提供一种内存回收装置,包括:
获取模块,用于监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线;
处理模块,用于根据所述应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将所述应用的内存水线传入内核空间,用于内核根据所述应用的内存水线执行内存回收。
在一种可能的设计中,所述获取模块用于:
从第一群组信息中查找所述应用所属的目标群组,所述第一群组信息包括群组内应用和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;或者,
根据所述应用的内存需求和第二群组信息确定所述应用所属的目标群组,所述第二群组信息包括群组内存需求范围和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线。
在一种可能的设计中,所述第一群组信息和所述第二群组信息是预先存储的。
在一种可能的设计中,所述获取模块用于:
若所述应用的内存需求在一群组的内存需求范围内,则将所述群组确定为所述目标群组。
在一种可能的设计中,所述获取模块还用于:
获取预设时间内各个应用运行后的历史使用内存数据,所述历史使用内存数据为应用启动时所占内存,或者,所述历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和;
根据各个应用的历史使用内存数据分别预测各个应用的内存需求,所述内存需求为启动时所需内存;或者,所述内存需求为启动时所需内存和预期使用阶段增长内存之和;
根据预测的各个应用的内存需求获取所述第一群组信息或所述第二群组信息。
在一种可能的设计中,所述获取模块用于:
根据预测的各个应用的内存需求和所述多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到所述第一群组信息。
在一种可能的设计中,所述获取模块用于:
根据预测的各个应用的内存需求和所述多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到所述第二群组信息。
在一种可能的设计中,所述处理模块还用于:
根据配置文件指示的群组内应用的更新,更新所述第一群组信息。
在一种可能的设计中,所述处理模块用于:
通过预留的函数接口将所述应用的内存水线传入内核空间。
上述第二方面以及上述第二方面的各可能的设计中所提供的内存回收装置,其有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第三方面,本申请提供一种终端设备,包括:存储器和处理器;
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面及第一方面任一种可能的设计中的内存回收方法。
第四方面,本申请提供一种可读存储介质,可读存储介质中存储有执行指令,当终端设备的至少一个处理器执行该执行指令时,终端设备执行第一方面及第一方面任一种可能的设计中的内存回收方法。
第五方面,本申请提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。终端设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得终端设备实施第一方面及第一方面任一种可能的设计中的内存回收方法。
第六方面,本申请提供一种芯片,所述芯片与存储器相连,或者所述芯片上集成有存储器,当所述存储器中存储的软件程序被执行时,实现第一方面及第一方面任一种可能的设计中的内存回收方法。
附图说明
图1为本申请提供的一种内存回收过程示意图;
图2为本申请提供的一种内存回收方法实施例的流程图;
图3为本申请提供的一种内存回收方法实施例的流程图;
图4为本申请提供的一种内存回收方法实施例的流程图;
图5为本申请提供的一种内存回收方法实施例的流程图;
图6为本申请提供的一种内存回收方法实施例的流程图;
图7为本申请提供的一种内存回收装置实施例的结构示意图;
图8为本申请提供的一种终端设备结构示意图。
具体实施方式
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明,本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或方案不应被解释为比其它实施例或方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。
本申请的内存回收方法可用于对终端设备的内存回收中,其中,本申请实施例的终端设备:可以是无线终端或有线终端,无线终端可以是指向用户提供语音和/或其他业务数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(RAN)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(Personal Communication Service,PCS)电话、无绳电话、会话发起协议(Session Initiation Protocol,SIP)话机、无线本地环路(Wireless LocalLoop,WLL)站、个人数字助理(Personal Digital Assistant,PDA)等设备。无线终端也可以称为系统、订户单元(Subscriber Unit)、订户站(Subscriber Station),移动站(MobileStation)、移动台(Mobile)、远程站(Remote Station)、远程终端(Remote Terminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device or User Equipment),在此不作限定。
相关技术中,通过设置一套内存水线,当监控到内存剩余空间低于内存水线中的低(low)水位则触发内存回收,但是在实际使用过程中,有时会出现一些特殊的应用,例如大型的游戏应用,若还是按照相关技术中的内存回收策略进行内存回收,会出现内存回收不足或者内存回收过度的情况,不能很好地满足实际需求。为解决这一问题,本申请提供一种内存回收方法,图1为本申请提供的一种内存回收过程示意图,如图1所示,本申请通过在用户态运行内存回收策略,在判定满足内存回收条件时,将当前被启动的应用或当前切换到前台界面的应用对应的内存水线传入内核空间,由内核根据该应用的内存水线执行内存回收。具体地,通过在用户态监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取该应用的内存水线,根据该应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将该应用的内存水线传入内核空间,由内核根据该应用的内存水线执行内存回收。从而,针对不同内存需求的应用,可根据不同的内存水线进行内存回收,因此可避免内存过度回收和回收不足的问题。进一步地,由于APP的内存需求随使用时间往往呈递增趋势,本申请实施例中在内存回收时考虑到APP内存需求为启动时所需内存和预期使用阶段增长内存之和,可进一步提高内存回收的准确性,避免内存过度回收和回收不足,下面结合附图详细说明本申请提供的内存回收方法的具体过程。
图2为本申请提供的一种内存回收方法实施例的流程图,如图2所示,本实施例的方法可以包括:
S101、监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线。
具体地,可以在用户态实时监控终端设备系统内各个应用的运行状态,在监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取该应用的内存水线,不同的应用,由于内存需求的不同,对应的内存水线也可能不同。需要说明的是,本申请实施例中的内存水线分为高(High)、低(Low)、最小(Min)三个水位。
作为第一种可实施的方式,从预存的多套内存水线中获取所述应用的内存水线,可以为:
从第一群组信息中查找该应用所属的目标群组,第一群组信息包括群组内应用和内存水线的映射关系,将目标群组的内存水线确定为该应用的内存水线,可选的,第一群组信息还可以包括群组标识。
示例性地,第一群组信息如下表一所示:
表一
群组标识 | 群组内应用 | 内存水线 |
1 | APP1、APP2、APP3 | 内存水线一 |
2 | APP4、APP5 | 内存水线二 |
3 | APP6、APP7、APP8、APP9 | 内存水线三 |
…… | …… | …… |
例如,当前被启动应用为APP1,从表一所示的第一群组信息中查找到APP1所属的目标群组为群组1,将群组1的内存水线一作为APP1的内存水线。表一仅是示例,也可以不包括群组标识,只有群组内应用和内存水线的映射关系。
在第一种可实施的方式下,其中的第一群组信息可以是离线获取,即预先存储,也可以是在线获取的,若第一群组信息为预先存储的,第一群组信息可通过如下方式获取:
根据各个应用的历史使用内存数据获取第一群组信息,历史使用内存数据为应用启动时所需内存,或者,历史使用内存数据为应用启动时所需内存和使用预设时间段所需内存之和。
具体来说,历史使用内存数据为APP启动时所需内存时,统计各个应用启动时所需的内存,即启动运行时所占的内存,可以是在不同的终端设备上运行各个应用,并统计在不同终端设备上运行各个应用后所占的内存数据,然后根据所有的历史使用内存数据获取第一群组信息。
历史使用内存数据为启动时所需内存和使用预设时间段所需内存之和时,预设时间段例如可以是半天,一天,一个周,由于有的APP内存需求随使用时间往往呈递增趋势,以王者荣耀为例,每打一局游戏,匿名页规模都会明显增加,因此,在内存回收时考虑APP内存需求为启动时所需内存和预期使用阶段增长内存之和,可进一步提高内存回收的准确性。具体地,可以是在不同的终端设备上运行各个应用,并统计在不同终端设备上运行各个应用启动时所需内存和使用预设时间段所需内存,将一个应用启动时所需内存和使用预设时间段所需内存之和作为历史使用内存数据,得到各个应用的历史使用内存数据,然后根据所有的历史使用内存数据获取第一群组信息。
作为一种可实施的方式,可以是根据如下方式获取第一群组信息:
S101a、根据各个应用的历史使用内存数据分别预测各个应用的内存需求,内存需求为启动时所需内存;或者,内存需求为启动时所需内存和预期使用阶段增长内存之和。
若历史使用内存数据为启动时所需内存,则相应的,预测的各个应用的内存需求为启动时所需内存。若历史使用内存数据为启动时所需内存和使用预设时间段所需内存之和,则相应地,预测的各个应用的内存需求为启动时所需内存和预期使用阶段增长内存之和。
S101b、根据预测的各个应用的内存需求和多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到群组内应用和内存水线的映射关系,即为第一群组信息。
示例性地,可以是根据多套内存水线对所有应用在进行群组划分时,例如可将内存需求在一个范围内的应用划分为一个群组,例如可将内存需求为0MB~50MB的应用划分为一个群组,将内存需求为50MB~100MB的应用划分为一个群组,将内存需求为1GB~2GB的应用划分为一个群组,等等。
可选的,群组划分完成后,可以为每个群组分别设置一个群组标识,得到群组标识、群组内应用和内存水线的映射关系,即为第一群组信息。
在将获得的第一群组信息存储后,进一步地,后续还可以根据配置文件指示的群组标识和群组内应用或者群组内应用的更新,更新第一群组信息。也就是说群组内的应用是可以变化的,例如某一应用版本升级后内存需求发生变化,对应所属的群组也发生变化,此时需要更新群组内应用。
作为第二种可实施的方式,从预存的多套内存水线中获取该应用的内存水线,可以为:
根据该应用的内存需求和预存的第二群组信息确定该应用所属的目标群组,第二群组信息包括群组内存需求范围和内存水线的映射关系,将目标群组的内存水线确定为该应用的内存水线。
其中,根据该应用的内存需求和预存的第二群组信息确定该应用所属的目标群组,具体可以是:若该应用的内存需求在一群组的内存需求范围内,则将该群组确定为目标群组。
可选的,第二群组信息还可以包括群组标识,示例性地,第二群组信息如下表二所示:
表二
群组标识 | 内存需求范围 | 内存水线 |
1 | 0MB~100MB | 内存水线一 |
2 | 100MB~200MB | 内存水线二 |
3 | 1GB~1.5GB | 内存水线三 |
…… | …… | …… |
例如,当前被启动应用为APP3,若APP3的内存需求为150MB,150MB在群组2的内存需求范围100MB~200MB内,将群组2确定为目标群组,并将群组2的内存水线二作为APP1的内存水线。
在第二种可实施的方式下,其中的第二群组信息可以是离线获取,即预先存储,也可以是在线获取的,若第二群组信息为预先存储的,第二群组信息可通过如下方式获取:在第二种可实施的方式下,进一步地,上述方法还可以包括:
根据各个应用的历史使用内存数据获取第二群组信息,历史使用内存数据为启动时所需内存,或者,历史使用内存数据为启动时所需内存和使用预设时间段所需内存之和。
具体来说,历史使用内存数据为APP启动时所需内存时,统计各个应用启动时所需的内存,即启动运行时所占的内存,可以是在不同的终端设备上运行各个应用,并统计在不同终端设备上运行各个应用后所占的内存数据,然后根据所有的历史使用内存数据获取第二群组信息。
历史使用内存数据为启动时所需内存和使用预设时间段所需内存之和时,预设时间段例如可以是半天,一天,一个周,由于有的APP内存需求随使用时间往往呈递增趋势,以王者荣耀为例,每打一局游戏,匿名页规模都会明显增加,因此,在内存回收时考虑APP内存需求为启动时所需内存和预期使用阶段增长内存之和,可进一步提高内存回收的准确性。具体地,可以是在不同的终端设备上运行各个应用,并统计在不同终端设备上运行各个应用启动时所需内存和使用预设时间段所需内存,将一个应用启动时所需内存和使用预设时间段所需内存之和作为历史使用内存数据,得到各个应用的历史使用内存数据,然后根据所有的历史使用内存数据获取第二群组信息。
作为一种可实施的方式,可以是根据如下方式获取第二群组信息:
S101a’、根据各个应用的历史使用内存数据分别预测各个应用的内存需求,内存需求为启动时所需内存;或者,内存需求为启动时所需内存和预期使用阶段增长内存之和。
若历史使用内存数据为启动时所需内存,则相应的,预测的各个应用的内存需求为启动时所需内存。若历史使用内存数据为启动时所需内存和使用预设时间段所需内存之和,则相应地,预测的各个应用的内存需求为启动时所需内存和预期使用阶段增长内存之和。
S101b’根据预测的各个应用的内存需求和多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到内存需求范围和内存水线的映射关系,即为第二群组信息根据预测的各个应用的内存需求将所有应用进行群组划分,得到多个群组,一个内存需求范围内的应用属于同一个群组。
示例性地,可以是根据多套内存水线对所有应用在进行群组划分时,可将内存需求在一个范围内的应用划分为一个群组,例如可将内存需求为0MB~50MB的应用划分为一个群组,将内存需求为50MB~100MB的应用划分为一个群组,将内存需求为1GB~2GB的应用划分为一个群组,等等,可获得每个群组对应的内存需求范围,如三个群组对应的内存范围分别是0MB~50MB、50MB~100MB和1GB~2GB。
具体地,群组划分完成后,可以得到每个群组对应的内存需求范围,为每个群组分别设置一套内存水线和一个群组标识,得到群组标识、内存需求范围和内存水线的映射关系,即为第二群组信息。
在第一种可实施的方式和第二种可实施的方式下,若第一群组信息为在线获取的,在S101之前,本实施例的方法还可以包括:
S103、获取预设时间内各个应用运行后的历史使用内存数据。
其中,历史使用内存数据为应用启动时所占内存,或者,历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和。
具体地,可以是用户拿到终端设备之后,运行终端设备上的各个应用,由系统获取各个应用运行后的历史使用内存数据,预设时间可以根据用户自己设定。
S104、根据各个应用的历史使用内存数据分别预测各个应用的内存需求,内存需求为启动时所需内存;或者,内存需求为启动时所需内存和预期使用阶段增长内存之和。
具体地,在预测内存需求时,可以是根据预设的规则预测,例如取每次应用运行后的使用内存的平均值,或者取最大值等。
S105、根据预测的各个应用的内存需求获取第一群组信息或第二群组信息。
具体地,根据预测的各个应用的内存需求获取第一群组信息,可以为:
根据预测的各个应用的内存需求和多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到第一群组信息。
在将获得的第一群组信息存储后,进一步地,后续还可以根据配置文件指示的群组标识和群组内应用或者群组内应用的更新,更新第一群组信息。也就是说群组内的应用是可以变化的,例如某一应用版本升级后内存需求发生变化,对应所属的群组也发生变化,此时需要更新群组内应用。
根据预测的各个应用的内存需求获取第二群组信息,可以为:
根据预测的各个应用的内存需求和多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到第二群组信息。
通过上述在线获取的方式获取第一群组信息或第二群组信息时,由于是根据用户的使用习惯来获取和更新群组内应用与内存水线的映射关系的,因此准确性更高。
S102、根据该应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。
具体地,例如,若系统内存剩余空间低于目标群组的内存水线中的低水位,则判定满足内存回收条件。
判定满足内存回收条件后,从终端设备当前正在运行的应用中确定将被回收内存的应用,例如可以是根据预先保存的被回收内存的应用的优先级顺序,来从当前正在运行的应用中确定将被回收内存的应用,还可以是根据现有的其它方式,本申请实施例对此不作限制。确定了将被回收内存的应用后,进行系统调用,可以是通过预留的函数接口将该应用的内存水线传入内核空间,由内核根据该应用的内存水线来确定回收终止的条件,并执行内存回收。
本实施例提供的内存回收方法,通过监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取该应用的内存水线,根据该应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。从而,针对不同内存需求的应用,可根据不同的内存水线进行内存回收,因此可避免内存过度回收和回收不足的问题,还可提高应用的保活率。
下面采用三个具体的实施例,对图2所示方法实施例的技术方案进行详细说明。
图3为本申请提供的一种内存回收方法实施例的流程图,如图3所示,本实施例的方法可以包括:
S201、监控到有应用被启动或切换到前台界面时,从预存的第一群组信息中查找该应用所属的目标群组,第一群组信息包括群组标识、群组内应用和内存水线的映射关系,将目标群组的内存水线确定为该应用的内存水线。
例如,当前被启动应用为APP4,从表一所示的第一群组信息中查找到APP4所属的目标群组为群组2,将群组2的内存水线二作为APP2的内存水线。
具体地,可以是根据图2所示实施例中S101a~S101b的过程获取第一群组信息,并存储第一群组信息,详细过程可参见图2所示实施例中S101a~S101b的详细描述,此处不再赘述。
在将获得的第一群组信息存储后,进一步地,后续还可以根据配置文件指示的群组标识和群组内应用的更新,更新第一群组信息。也就是说群组内的应用是可以变化的。
S202、根据该应用的内存水线和系统内存占用信息判定是否满足内存回收条件,若是则执行S203,若否返回执行S201。
S203、从终端设备当前正在运行的应用中确定将被回收内存的应用,并通过预留的函数接口将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。
图4为本申请提供的一种内存回收方法实施例的流程图,如图4所示,本实施例的方法可以包括:
S301、监控到有应用被启动或切换到前台界面时,根据该应用的内存需求和预存的第二群组信息确定该应用所属的目标群组,第二群组信息包括群组标识、内存需求范围和内存水线的映射关系,将目标群组的内存水线确定为该应用的内存水线。
其中,根据该应用的内存需求和预存的第二群组信息确定该应用所属的目标群组,具体可以是:若该应用的内存需求在一群组的内存需求范围内,则将该群组确定为目标群组。
例如,如表二所示的第二群组信息,当前被启动应用为APP6,若APP6的内存需求为1.2GB,1.2GB在群组3的内存需求范围1GB~1.5GB内,将群组3确定为目标群组,并将群组3的内存水线三作为APP6的内存水线。
具体地,可以是根据图2所示实施例中S101a’~S101b’的过程获取第二群组信息,并存储第二群组信息,详细过程可参见图2所示实施例中S101a’~S101b’的详细描述,此处不再赘述。
S302、根据该应用的内存水线和系统内存占用信息判定是否满足内存回收条件,若是则执行S303,若否返回执行S301。
S303、从终端设备当前正在运行的应用中确定将被回收内存的应用,并通过预留的函数接口将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。
图5为本申请提供的一种内存回收方法实施例的流程图,与图3和图4的区别在于,本实施例中第一群组信息是在线获取的,如图5所示,本实施例的方法可以包括:
S401、获取预设时间内各个应用运行后的历史使用内存数据。
其中,历史使用内存数据为应用启动时所占内存,或者,历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和。
具体地,可以是用户拿到终端设备之后,运行终端设备上的各个应用,由系统获取各个应用运行后的历史使用内存数据,预设时间可以根据用户自己设定。
S402、根据各个应用的历史使用内存数据分别预测各个应用的内存需求。
其中,内存需求为启动时所需内存;或者,内存需求为启动时所需内存和预期使用阶段增长内存之和。
具体地,在预测内存需求时,可以是根据预设的规则预测,例如取每次应用运行后的使用内存的平均值,或者取最大值等。
S403、根据预测的各个应用的内存需求获取第一群组信息,第一群组信息包括群组标识、群组内应用和内存水线的映射关系。
具体地,根据预测的各个应用的内存需求获取第一群组信息,具体为:
根据预测的各个应用的内存需求和多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到第一群组信息。
在将获得的第一群组信息存储后,进一步地,后续还可以根据配置文件指示的群组标识和群组内应用或者群组内应用的更新,更新第一群组信息。也就是说群组内的应用是可以变化的,例如某一应用版本升级后内存需求发生变化,对应所属的群组也发生变化,此时需要更新群组内应用。
S404、监控到有应用被启动或切换到前台界面时,从第一群组信息中查找该应用所属的目标群组,将目标群组的内存水线确定为该应用的内存水线。
S405、根据该应用的内存水线和系统内存占用信息判定是否满足内存回收条件,若是则执行S403,若否返回执行S404。
S406、从终端设备当前正在运行的应用中确定将被回收内存的应用,并通过预留的函数接口将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。
图6为本申请提供的一种内存回收方法实施例的流程图,与图3和图4的区别在于,本实施例中第二群组信息是在线获取的,如图6所示,本实施例的方法可以包括:
S501、获取预设时间内各个应用运行后的历史使用内存数据。
其中,历史使用内存数据为应用启动时所占内存,或者,历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和。
具体地,可以是用户拿到终端设备之后,运行终端设备上的各个应用,由系统获取各个应用运行后的历史使用内存数据,预设时间可以根据用户自己设定。
S502、根据各个应用的历史使用内存数据分别预测各个应用的内存需求。
其中,内存需求为启动时所需内存;或者,内存需求为启动时所需内存和预期使用阶段增长内存之和。
具体地,在预测内存需求时,可以是根据预设的规则预测,例如取每次应用运行后的使用内存的平均值,或者取最大值等。
S503、根据预测的各个应用的内存需求获取第二群组信息,第二群组信息包括群组标识、内存需求范围和内存水线的映射关系。
具体地,根据预测的各个应用的内存需求获取第二群组信息,具体为:
根据预测的各个应用的内存需求和多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到第二群组信息。
S504、监控到有应用被启动或切换到前台界面时,根据该应用的内存需求和第二群组信息确定该应用所属的目标群组,将目标群组的内存水线确定为该应用的内存水线。
S505、根据该应用的内存水线和系统内存占用信息判定是否满足内存回收条件,若是则执行S503,若否返回执行S504。
S506、从终端设备当前正在运行的应用中确定将被回收内存的应用,并通过预留的函数接口将该应用的内存水线传入内核空间,用于内核根据该应用的内存水线执行内存回收。
图7为本申请提供的一种内存回收装置实施例的结构示意图,如图7所示,本实施例的装置可以包括:获取模块11和处理模块12,其中,获取模块11用于监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线;
处理模块12用于根据所述应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将所述应用的内存水线传入内核空间,用于内核根据所述应用的内存水线执行内存回收。
进一步地,所述获取模块11用于:
从第一群组信息中查找所述应用所属的目标群组,所述第一群组信息包括群组内应用和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;或者,
根据所述应用的内存需求和第二群组信息确定所述应用所属的目标群组,所述第二群组信息包括群组内存需求范围和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线。
可选的,所述第一群组信息和所述第二群组信息是预先存储的。
进一步地,所述获取模块11用于:
若所述应用的内存需求在一群组的内存需求范围内,则将所述群组确定为所述目标群组。
进一步地,所述获取模块11还用于:
获取预设时间内各个应用运行后的历史使用内存数据,所述历史使用内存数据为应用启动时所占内存,或者,所述历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和;
根据各个应用的历史使用内存数据分别预测各个应用的内存需求,所述内存需求为启动时所需内存;或者,所述内存需求为启动时所需内存和预期使用阶段增长内存之和;
根据预测的各个应用的内存需求获取所述第一群组信息或所述第二群组信息。
进一步地,所述获取模块11用于:
根据预测的各个应用的内存需求和所述多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到所述第一群组信息。
进一步地,所述获取模块11用于:
根据预测的各个应用的内存需求和所述多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到所述第二群组信息。
进一步地,所述处理模块12还用于:
根据配置文件指示的群组内应用的更新,更新所述第一群组信息。
进一步地,所述处理模块12用于:
通过预留的函数接口将所述应用的内存水线传入内核空间。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本申请可以根据上述方法示例对内存回收装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图8为本申请提供的一种终端设备结构示意图,该终端设备200包括:
存储器201和处理器202;
存储器201,用于存储计算机程序;
处理器202,用于执行存储器存储的计算机程序,以实现上述实施例中的内存回收方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器201既可以是独立的,也可以跟处理器202集成在一起。
当存储器201是独立于处理器202之外的器件时,终端设备200还可以包括:
总线203,用于连接存储器201和处理器202。
可选地,本实施例还包括:通信接口204,该通信接口204可以通过总线203与处理器202连接。处理器202可以控制通信接口203来实现终端设备200的上述的接收和发送的功能。
该终端设备可以用于执行上述方法实施例中终端设备对应的各个步骤和/或流程。
本申请还提供一种可读存储介质,可读存储介质中存储有执行指令,当终端设备的至少一个处理器执行该执行指令时,终端设备执行上述方法实施例中的内存回收方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。终端设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得终端设备实施上述方法实施例中的内存回收方法。
本申请还提供一种芯片,所述芯片与存储器相连,或者所述芯片上集成有存储器,当所述存储器中存储的软件程序被执行时,实现上述方法实施例中的内存回收方法。
本领域普通技术人员可以理解:在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (16)
1.一种内存回收方法,其特征在于,包括:
监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线;
根据所述应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将所述应用的内存水线传入内核空间,用于内核根据所述应用的内存水线执行内存回收;
所述从预存的多套内存水线中获取所述应用的内存水线,包括:
从第一群组信息中查找所述应用所属的目标群组,所述第一群组信息包括群组内应用和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;或者,
根据所述应用的内存需求和第二群组信息确定所述应用所属的目标群组,所述第二群组信息包括群组内存需求范围和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;
所述方法还包括:
获取预设时间内各个应用运行后的历史使用内存数据,所述历史使用内存数据为应用启动时所占内存,或者,所述历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和;
根据各个应用的历史使用内存数据分别预测各个应用的内存需求,所述内存需求为启动时所需内存;或者,所述内存需求为启动时所需内存和预期使用阶段增长内存之和;
根据预测的各个应用的内存需求获取所述第一群组信息或所述第二群组信息。
2.根据权利要求1所述的方法,其特征在于,所述第一群组信息和所述第二群组信息是预先存储的。
3.根据权利要求1所述的方法,其特征在于,所述根据所述应用的内存需求和预存的第二群组信息确定所述应用所属的目标群组,包括:
若所述应用的内存需求在一群组的内存需求范围内,则将所述群组确定为所述目标群组。
4.根据权利要求1所述的方法,其特征在于,所述根据预测的各个应用的内存需求获取所述第一群组信息,包括:
根据预测的各个应用的内存需求和所述多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到所述第一群组信息。
5.根据权利要求1所述的方法,其特征在于,所述根据预测的各个应用的内存需求获取所述第二群组信息,包括:
根据预测的各个应用的内存需求和所述多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到所述第二群组信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据配置文件指示的群组内应用的更新,更新所述第一群组信息。
7.根据权利要求1所述的方法,其特征在于,所述将所述应用的内存水线传入内核空间,包括:
通过预留的函数接口将所述应用的内存水线传入内核空间。
8.一种内存回收装置,其特征在于,包括:
获取模块,用于监控到有应用被启动或切换到前台界面时,从预存的多套内存水线中获取所述应用的内存水线;
处理模块,用于根据所述应用的内存水线和系统内存占用信息判定满足内存回收条件时,从终端设备当前正在运行的应用中确定将被回收内存的应用,并将所述应用的内存水线传入内核空间,用于内核根据所述应用的内存水线执行内存回收;
所述获取模块用于:
从第一群组信息中查找所述应用所属的目标群组,所述第一群组信息包括群组内应用和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;或者,
根据所述应用的内存需求和第二群组信息确定所述应用所属的目标群组,所述第二群组信息包括群组内存需求范围和内存水线的映射关系;
将所述目标群组的内存水线确定为所述应用的内存水线;
所述获取模块还用于:
获取预设时间内各个应用运行后的历史使用内存数据,所述历史使用内存数据为应用启动时所占内存,或者,所述历史占用内存数据为应用启动时所占内存和使用预设时间段所占内存之和;
根据各个应用的历史使用内存数据分别预测各个应用的内存需求,所述内存需求为启动时所需内存;或者,所述内存需求为启动时所需内存和预期使用阶段增长内存之和;
根据预测的各个应用的内存需求获取所述第一群组信息或所述第二群组信息。
9.根据权利要求8所述的装置,其特征在于,所述第一群组信息和所述第二群组信息是预先存储的。
10.根据权利要求8所述的装置,其特征在于,所述获取模块用于:
若所述应用的内存需求在一群组的内存需求范围内,则将所述群组确定为所述目标群组。
11.根据权利要求8所述的装置,其特征在于,所述获取模块用于:
根据预测的各个应用的内存需求和所述多套内存水线确定各个应用对应的内存水线,与一套内存水线对应的所有应用为一个群组内的元素,一个群组内包括至少一个应用,得到所述第一群组信息。
12.根据权利要求8所述的装置,其特征在于,所述获取模块用于:
根据预测的各个应用的内存需求和所述多套内存水线将所有应用进行群组划分,得到多个群组,一套内存水线对应一个群组,一个内存需求范围内的应用属于同一个群组,得到所述第二群组信息。
13.根据权利要求8所述的装置,其特征在于,所述处理模块还用于:
根据配置文件指示的群组内应用的更新,更新所述第一群组信息。
14.根据权利要求8所述的装置,其特征在于,所述处理模块用于:
通过预留的函数接口将所述应用的内存水线传入内核空间。
15.一种终端设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的内存回收方法。
16.一种可读存储介质,所述可读存储介质中存储有执行指令,其特征在于,当终端设备的至少一个处理器执行所述执行指令时,所述终端设备执行权利要求1-7任一项所述的内存回收方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910812574.1A CN112445606B (zh) | 2019-08-30 | 2019-08-30 | 内存回收方法及装置 |
PCT/CN2020/110827 WO2021036993A1 (zh) | 2019-08-30 | 2020-08-24 | 内存回收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910812574.1A CN112445606B (zh) | 2019-08-30 | 2019-08-30 | 内存回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445606A CN112445606A (zh) | 2021-03-05 |
CN112445606B true CN112445606B (zh) | 2024-06-18 |
Family
ID=74684164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910812574.1A Active CN112445606B (zh) | 2019-08-30 | 2019-08-30 | 内存回收方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112445606B (zh) |
WO (1) | WO2021036993A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961427B (zh) * | 2021-12-20 | 2022-05-24 | 荣耀终端有限公司 | 系统内存分析的方法及电子设备 |
CN114518905A (zh) * | 2022-01-21 | 2022-05-20 | 珠海全志科技股份有限公司 | 一种应用冷启动的方法、装置、计算机设备和存储介质 |
CN116700944B (zh) * | 2022-11-03 | 2024-08-02 | 荣耀终端有限公司 | 一种内存回收方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205474A (zh) * | 2017-08-23 | 2018-06-26 | 珠海市魅族科技有限公司 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7852699B2 (en) * | 2007-10-04 | 2010-12-14 | Macronix International Co., Ltd. | Power saving method and circuit thereof for a semiconductor memory |
CN102968335A (zh) * | 2012-10-25 | 2013-03-13 | 东莞宇龙通信科技有限公司 | 终端和终端内存管理方法 |
CN103902359B (zh) * | 2014-03-31 | 2018-02-23 | 深圳创维-Rgb电子有限公司 | 基于Android系统内存优化与应用调度方法及系统 |
CN105701025B (zh) * | 2015-12-31 | 2019-07-23 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN107220076B (zh) * | 2016-09-27 | 2018-10-30 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN109669877B (zh) * | 2018-12-11 | 2023-04-04 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置、终端及存储介质 |
CN109656722B (zh) * | 2019-01-04 | 2021-05-11 | Oppo广东移动通信有限公司 | 内存优化方法、装置、移动终端及存储介质 |
-
2019
- 2019-08-30 CN CN201910812574.1A patent/CN112445606B/zh active Active
-
2020
- 2020-08-24 WO PCT/CN2020/110827 patent/WO2021036993A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205474A (zh) * | 2017-08-23 | 2018-06-26 | 珠海市魅族科技有限公司 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021036993A1 (zh) | 2021-03-04 |
CN112445606A (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112445606B (zh) | 内存回收方法及装置 | |
US20090164152A1 (en) | Method, Apparatus and Computer Program Product for Providing Power Consumption Notification and Management | |
CN101730304A (zh) | 操作多调制解调器移动终端中的多操作系统的设备和方法 | |
CN101540799A (zh) | 一种移动终端软件升级方法 | |
TWI697239B (zh) | 資源塊組的劃分方法和使用者終端 | |
CN103747434A (zh) | 更换号码时自动更新相关联系人通讯录的系统与方法 | |
CN110868339A (zh) | 节点分配方法、装置、电子设备及可读存储介质 | |
CN105224421A (zh) | 一种数据备份方法、装置及电子设备 | |
CN106171019A (zh) | 确定终端漫游状态的方法、装置、终端及服务器 | |
CN112566187A (zh) | 带宽分配方法、装置、计算机设备和计算机可读存储介质 | |
CN103259869A (zh) | 一种基于分布式数据存储的集中信息管理方法 | |
CN113259260A (zh) | 部署应用实例和调度应用实例的方法和装置 | |
CN104580757A (zh) | 一种电话状态分享方法和装置 | |
CN105824660A (zh) | 一种应用程序的更新方法及终端 | |
CN112787828B (zh) | 一种应用程序的流量统计方法、设备、移动电子设备 | |
US20210357252A1 (en) | Application management method and apparatus, and device | |
CN102300198B (zh) | 实现手机远程服务的方法及系统和手机远程服务中心 | |
CN111669831A (zh) | 一种资源分配方法及装置 | |
CN113115400B (zh) | 一种通信方法及装置 | |
CN116760815A (zh) | 固件版本升级方法及装置 | |
CN111683407B (zh) | 一种资源分配方法及装置 | |
CN112380411B (zh) | 敏感词处理方法、装置、电子设备、系统及存储介质 | |
CN110475362B (zh) | 传输资源的调整方法与设备 | |
CN112512118B (zh) | 一种通信方法和设备 | |
CN117891618B (zh) | 人工智能模型训练平台的资源任务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |