CN110704189A - 内存回收方法、装置以及电子设备 - Google Patents
内存回收方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN110704189A CN110704189A CN201910925510.2A CN201910925510A CN110704189A CN 110704189 A CN110704189 A CN 110704189A CN 201910925510 A CN201910925510 A CN 201910925510A CN 110704189 A CN110704189 A CN 110704189A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory recovery
- recovery
- time period
- cpu
- 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
Images
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/5022—Mechanisms to release resources
-
- 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
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)
Abstract
本申请实施例公开了一种内存回收方法、装置以及电子设备。所述方法包括:当进入内存回收场景时,获取CPU使用率;获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低;基于所述内存回收比例进行内存回收。从而使得在不同内存回收场景对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存回收场景的CPU使用率,然后根据当前的内存回收场景的CPU使用率来确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性并且提升电子设备的流畅性。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种内存回收方法、装置以及电子设备。
背景技术
内存又称主存,是CPU能直接寻址的存储空间,由半导体器件制成。电子设备中的内存的空间是有限的,为了保证系统有足够的内存可以使用,电子设备的系统通常会在一定的情况下进行内存回收。但是,在相关的内存回收方式中,还缺乏一定的灵活性。
发明内容
鉴于上述问题,本申请提出了一种内存回收方法、装置以及电子设备,以改善上述问题。
第一方面,本申请提供了一种内存回收方法,所述方法包括:当进入内存回收场景时,获取CPU使用率;获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低;基于所述内存回收比例进行内存回收。
第二方面,本申请提供了一种内存回收装置,所述装置包括:处理信息获取单元,用于当进入内存回收场景时,获取CPU使用率;内存信息获取单元,用于获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低;内存回收单元,用于基于所述内存回收比例进行内存回收。
第三方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行以实现上述的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。
本申请提供的一种内存回收方法、装置以及电子设备,当进入内存回收场景时,获取CPU使用率,然后获取与所述CPU使用率对应的表征多种内存回收对象之间的比例的内存回收比例,基于所述内存回收比例进行内存回收。从而使得在不同内存回收场景对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存回收场景,然后根据当前的内存回收场景来确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性,并且因为所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低,进而可以在CPU使用率较高时,更多的回收不消耗CPU资源或者消耗CPU资源的内存回收对象,提升电子设备的流畅性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提出的一种内存回收方法的流程图;
图2示出了本申请一实施例提出的一种内存回收方法中周期性的多个时间段的示意图;
图3示出了本申请另一实施例提出的一种内存回收方法的流程图;
图4示出了本申请一实施例提出的一种内存回收方法中周期性的多个时间段中应用程序运行的示意图;
图5示出了本申请再一实施例提出的一种内存回收方法的流程图;
图6示出了本申请实施例提出的一种内存回收装置的结构框图;
图7示出了本申请再一实施例提出的一种内存回收装置的结构框图;
图8示出了本申请另一实施例提出的一种内存回收装置的结构框图;
图9示出了本申请实时中的用于执行根据本申请实施例的内存回收方法的电子设备的结构框图;
图10示出了本申请实时中的用于保存或者携带实现根据本申请实施例的内存回收方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
对于操作系统而言,因为内存本身的大小是有限的,所以内存回收是一个较为普遍的机制。而之所以要进行内存回收,主要原因有两个:系统需要为任何时刻突发到来的内存申请提供足够的内存,以便cache的使用和其他相关内存的使用不至于让系统的剩余内存长期处于很少的状态。还有,当有大于空闲内存的申请到来的时候,也会触发内存回收。
而发明人在对相关的内存回收过程的研究发现,相关的内存回收方式中,还缺乏一定的灵活性。例如,以Android操作系统为例。在Android操作系统中,主要存在有两种内存回收机制。一种是基于kswapd进程的回收机制,在这种回收机制中,kswapd进程定期在后台运行。另一种是基于direct reclaim进程的回收机制,在这种回收机制中,directreclaim进程在接收到内存分配需求时,开始进行内存回收。因此,可以发现相关的内存方式的内存回收参数较为固定。
因此,发明人提出了本申请中的在不同CPU使用率对应的内存回收比例不同的情况下,可以在内存回收开始时先获取CPU使用率,然后根据当前的CPU使用率确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性的内存回收方法、装置以及电子设备,并且因为所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低,进而可以在CPU使用率较高时,更多的回收不消耗消耗CPU资源或者消耗CPU资源的内存回收对象,提升电子设备的流畅性。
下面将结合附图具体描述本申请的各实施例。
请参阅图1,本申请实施例提供的一种内存回收方法,所述方法包括:
步骤S110:当进入内存回收场景时,获取CPU使用率。
在本申请实施例中,可以有多种方式来检测当前是否处于内存回收场景。
其中,作为一种方式,可以在检测到有负责进行内存回收的进程开始运行时,判定当前进入内存回收场景。例如,若本实施例所运行的环境为Android操作系统中,那么可以在检测到有kswapd进程或者direct reclaim进程运行时,判定当前进入内存回收场景。
在本申请实施例中可以有多种方式来获取CPU使用率。
作为一种方式,在本实施例中获取CPU使用率的方式包括:获取在周期性的多个历史时间段中距离当前时刻最近的一个历史时间段对应的CPU使用率作为获取的CPU使用率。在这种方式下,对于每个时间段可以基于每个时间段内的CPU空闲时间以及CPU总使用时间计算得到的CPU使用率。
例如,如图2所示,0到t1为一个周期性的时间段,t1到t2为一个周期性的时间段,t2到t3为一个周期性的时间段,t3到t4为一个周期性的时间段。而其中箭头所指的位置为当前时刻,那么对应的在周期性的多个历史时间段中距离当前时刻最近的一个历史时间段为t3到t4这个时间段。
示例性的,在t3到t4时间段CPU总使用时间=(user2+nice2+system2+idle2+iowait2+irq2+softirq2)-(user1+nice1+system1+idle1+iowait1+irq1+softirq1),在t3到t4时间段CPU空闲时间=(idle2-idle1),CPU在t3到t4时间段即时利用率=1-CPU空闲使用时间/CPU总的使用时间。
其中,user:从系统启动开始累计到当前时刻,用户态的CPU时间,不包含nice值为负进程。nice表征从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间。system表征从系统启动开始累计到当前时刻,核心时间。idle表征从系统启动开始累计到当前时刻,除IO等待时间以外其它等待时间。iowait表征从系统启动开始累计到当前时刻,IO等待时间。irq表征从系统启动开始累计到当前时刻,硬中断时间。softirq表征从系统启动开始累计到当前时刻,软中断时间。
作为另外一种方式,可以直接将当前CPU的占用率直接作为CPU使用率。其中CPU占用率为当前已经使用的CPU处理资源与CPU总的处理资源之间的比值。
步骤S120:获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低。
可以理解的是,对于不同的内存回收对象因为其本身特性的在被进行回收时所需要消耗的CPU资源是不同的。例如,对于匿名页这种内存回收对象,其在被回收时是需要进行压缩然后存放在RAM中的,所以是需要消耗一定的CPU资源的。所以为了整体提升电子设备的流程性,在CPU使用率较高的状态下,就尽量降低再去对CPU资源的占用,进而就降低需要消耗CPU资源的内存回收对象的回收量,从而实现降低内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重。
作为一种方式,在电子设备中预先存储有多个CPU使用率与对应的内存回收比例之前的映射关系。那么在电子设备获取到CPU使用率后,可以将获取到的CPU使用率与前述的多个CPU使用率进行匹配,进而将与所述获取到CPU使用率匹配的多个CPU使用率中匹配的CPU使用率所对应的内存回收比例作为后续进行内存回收时所采用的内存回收比例。例如,在电子设备中存储的多个CPU使用率包括有CPU使用率A、CPU使用率B、CPU使用率C、CPU使用率D。其中,CPU使用率A对应有内存回收比例0:200,CPU使用率B对应有内存回收比例40:160,CPU使用率C对应有内存回收比例80:120,CPU使用率D对应有内存回收比例200:0。那么在获取到CPU使用率X后,将CPU使用率X与前述的CPU使用率A、CPU使用率B、CPU使用率C以及CPU使用率D进行匹配,若CPU使用率X与其中的CPU使用率C匹配,那么对应的内存回收比例为80:120。
步骤S130:基于所述内存回收比例进行内存回收。
本申请提供的一种内存回收方法,当进入内存回收场景时,获取CPU使用率,然后获取与所述CPU使用率对应的表征多种内存回收对象之间的比例的内存回收比例,基于所述内存回收比例进行内存回收。从而使得在不同内存回收场景对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存回收场景,然后根据当前的内存回收场景来确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性,并且因为所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低,进而可以在CPU使用率较高时,更多的回收不消耗CPU资源或者消耗CPU资源的内存回收对象,提升电子设备的流畅性。
请参阅图3,本申请实施例提供的一种内存回收方法,所述方法包括:
步骤S210:当进入内存回收场景时,获取指定时间段内的CPU使用率。
作为一种方式,所述获取指定时间段内的CPU使用率的步骤包括:将周期性的历史时间段距离当前时刻最近的一个的历史时间段作为指定时间段;获取存储的基于所述指定时间段内的CPU空闲时间以及CPU总使用时间计算得到的CPU使用率。
再者,可以理解的是,周期性的时间段中对于每个时间段都会有开始时间以及结束时间。例如,前述的图2所示的多个时间段中,在0到t1时间段,开始时间为0而结束时间为t1,再者,在t2到t3这个时间段中,开始时间为t2,而结束时间为t3。并且,对于每个时间段对应的CPU使用率所反应的都是各个时间段内的CPU使用情况,而在一些情况下,CPU使用率变化是比较频繁的。如果用前一个时间段的CPU使用率来计算得到本时间段中的内存分配比例,可以在一定程度上反应实际的CPU使用情况,但是还不能很好的反应当前实时的情况。
针对上述内容,需要先说明的是,在一些时间段中CPU的使用情况是很相似的。而相似的CPU使用情况,可能是因为所运行的应用程序比较相似或者相同。例如,请参阅图4,在t1到t2这个时间段中有应用程序A以及应用程序B以及应用程序C在运行,而对应的在t4到t5这个时间段中也有应用程序A以及应用程序B以及应用程序C在运行,那么可以理解的是t4到t5这个时间段为与t1到t2这个时间段相同或者相似的时间段。
那么作为一种方式,所述获取指定时间段内的CPU使用率的步骤包括:获取当前的应用程序特征参数,所述应用程序特征参数表征应用程序对CPU处理资源的占用程度;基于所述应用程序特征参数计算得到与当前时刻所处的时间段对应的目标历史时间段作为指定时间段;获取存储的所述历史指定时间段内的CPU使用率。
在这种方式下,可选的,电子设备可以在每个时间段开始时刻以及结束时刻分别计算一次本时间段对应的应用程序特征参数。其中,可以理解的是,在时间段的开始时刻检测到的应用程序可以是对本时间段会有那些应用程序进行运行的一个预估,以便可以更加快速的计算得到相同的目标时间段,而当在时间段的结束时刻是可以明确的确认本时间段实际有那些应用程序在运行的。所以在本时间段计算得到本时间段对应的应用程序特征参数可以用于后续的时间段比对相同的目标时间段,而在每个时间段的开始时刻计算当前的应用程序特征参数,可以用于在当前时间段还未结束之前就可以预估与当前时间段相同的目标时间段,以便可以更加快速即时的获取对应的内存回收比例。
其中,可选的,在计算当前的应用程序特征参数时可以为应用程序当前启动的线程数与CPU可以并行处理的线程的总数,其中应用程序特征参数越高表征对CPU的占用程度越高。例如,当前有应用程序A、应用程序B、应用程序C以及应用程序D在运行,而其中应用程序A对应有a个线程在运行,应用程序B对应有b个线程在运行,应用程序C对应有c个线程在运行,应用程序D对应有d个线程在运行。在CPU可以并行处理的线程的总数为m的情况下,对应的当前的应用程序特征参数为(a+b+c+d)/m。
可选的,在每个时间段结束时刻计算应用程序特征参数时是将当前时间段所有应用程序的平均线程数与CPU可以并行处理的线程的总数的比值。例如,在某个时间段内有应用程序B、应用程序C以及应用程序D在运行,而其中应用程序B运行过t个线程,应用程序C运行过k个线程,应用程序D运行过l个线程。那么该时间段的应用程序特征参数为(t+k+l)/3/m。
可选的,所述基于所述应用程序特征参数计算得到与当前时刻所处的时间段对应的目标历史时间段作为指定时间段的步骤包括:将所述当前的应用程序特征参数与多个历史时间段的应用程序特征参数进行比对;将对应的应用程序特征参数与所述当前的应用程序特征参数相同的历史时间段作为对应的目标历史时间段;将所述目标历史时间段作为指定时间段。
可选的,所述方法还包括:获取每个时间段内运行的应用程序的数量以及优先级,其中,优先级越高所对应的历史运行过程中所占用的内存越高;获取与所述数量对应的第一评分;获取与所述优先级对应的第二评分;基于所述第一评分以及对应的第一预设权重,以及所述第二评分以及对应的第二预设权重计算得到每个时间段对应的应用程序特征参数。
再者,在本申请实施例中在不同的内存回收场景中,基于对于同一个CPU使用率也可以对应不同的内存回收比例。
在本申请实施例中,可以基于多种方式来确认当前的内存回收场景。
作为一种方式,可以识别当前进行内存回收的进程的标识;根据所述标识确定当前的内存回收场景。可以理解的是,在电子设备中进行内存回收都是由特定的进程执行的。例如,前述的有kswapd进程或者direct reclaim进程。那么在这种方式下,可以周期性的检测当前有哪些进程处于运行状态,当检测到有特定的进行内存回收的进程的标识为正在运行的进程标识时,判定处于该标识所对应的内存回收场景。例如,若识别当前进行内存回收的进程的标识为“kswapd”,那么对应的识别当前为kswapd内存回收场景。若识别当前进行内存回收的进程的标识为“direct reclaim”,那么对应的识别当前为direct reclaim内存回收场景。
作为另外一种方式,也可以根据当前所运行的应用程序来确定当前的内存回收场景。
需要说明的是,对于一些应用程序在运行过程中,对于内存消耗是有一定的需求的,那么针对不同的应用程序来确定不同的内存回收场景,可以更好的对应用程序流畅运行带来有利的条件。例如,对于一些应用程序在运行的过程中可能频繁的需要申请内存。例如,对于短视频类的应用程序,可能会增量性的申请内存分配来缓存所请求的短视频。例如,对于即时通信类的应用程序,可能会在运行中检测到进行视频通话时申请分配内存来缓存视频图像数据。再例如,对于一些应用程序本身在启动的时候,就会申请较多的内存。
那么在这种方式下,可选的,当检测到有进行内存回收的进程启动后,会进一步的检测当前有哪些应用程序处于运行状态,然后根据当前处于运行状态的应用程序来确定当前的内存回收场景,以便进而确定内存回收比例。
此外,作为另外一种方式,还可以结合当前处于运行状态的进程标识以及当前处于运行状态的应用程序共同来确定当前的内存回收场景。
如前述内容所示,在本申请实施例中可以有多种方式来确定当前的内存回收场景,而确定的不同的内存回收场景各自对应的内存回收比例是会有所不同的,以便于可以适应不同的场景各自的内存回收需求。示例性的,在实施例中所提及的内存回收对象可以包括匿名页(Anonymous page)以及文件页(File page)。其中,匿名页可以理解为没有文件背景的页,如堆,栈,数据段等,不是以文件形式存在的。文件页可以理解为有文件背景的页,例如,对于文件页所存储的数据可以在磁盘中找到对应的数据。
而其中,对于回收匿名页以及回收文件页的代价是不同的。在回收匿名页的过程中,是将匿名页压缩后存放在RAM中,由于该过程需要使用CPU将匿名页压缩,使用时再解压缩,所以匿名页的回收过程需要消耗一定的CPU时间,相对较慢。对于文件页的回收分两种情况,如果文件页对应的文件内容没有被修改过,则直接将文件页内容丢弃;而如果文件页对应的文件内容被修改了,则将文件内容写回磁盘再将文件页丢弃。对于被回收的文件页的文件内容再次使用时,需要时重新从磁盘读取。额一般而言,很多文件页是没有被修改的,所以回收过程相对较快。
其中,本实施例中主要以检测在前台运行的应用程序为主。以电子设备为Android操作系统,可以通过执行ActivityManager的getRunningTasks方法来获取到当前在前台运行的应用程序的名称。此外,电子设备还可以通过UsageStatsManager来获取用户使用的程序的列表,将该列表中记录的最近使用的应用程序识别为当前的前台应用。再者,还可以通过Android自带无障碍功能,监控窗口焦点的变化,拿到焦点窗口对应包名作为当期在前台运行的应用程序。
步骤S220:获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低。
需要说明的是,在本实施例中,每个内存回收场景都可以对应一个内存回收比例以作为在该内存回收场景下所获取的CPU使用率所对比的内存回收比例。那么在这种方式下,在进入内存回收场景后可以先获取内存回收场景的类型,进而获取该内存回收场景的类型所对应的CPU与内存回收比例之间的映射关系作为前述步骤(例如,步骤S210或者步骤S110)中所获取的CPU使用率对应的内存回收比例。
下面就主要以匿名页以及文件页作为内存回收对象对本实施例所提供的方法进行介绍。其中,本实施例中的比例可以理解为匿名页与文件页之间的比例。
对于识别当前进行内存回收的进程的标识,然后根据所述标识确定当前的内存回收场景的这种方式中,可以预先配置每种内存回收进程进行内存回收时,对匿名页以及文件页的回收比例,以作为在每种内存回收场景下CPU使用率所对应的内存回收比例。进而,当检测到有内存回收进程开始运行时,对应的获取该内存回收进程的标识,然后按照该内存回收进程的标识查询对应的匿名页以及文件页的回收比例,以作为当前内存回收场景的CPU使用率所对应的内存回收比例。
标识 | 比例 |
direct reclaim | 0:200 |
kswapd | 200:0 |
如上表所示,标识“direct reclaim”对应的比例为“0:200”,表征仅回收文件页,而不回收匿名页。标识“kswapd”对应的比例为“200:0”,表征仅回收匿名页,而不回收文件页。当然,其中的比例还可以根据需要进行改变,例如,对于标识为“direct reclaim”的进程对应的比例还可以为50:150,以表征尽量回收文件页,且少量回收匿名页。
再者,在根据当前所运行的应用程序来确定当前的内存回收场景的这种方式中,可以预先建立应用程序与内存回收比例的对应关系。进而在检测到有内存回收进程开始运行后,获取当前正在运行的应用程序,然后查询该正在运行的应用程序对应的比例作为当前内存回收场景的内存回收比例。
应用程序标识 | 比例 |
应用程序A | 10:190 |
应用程序B | 20:180 |
应用程序C | 30:170 |
如上表所示,每个应用程序标识都各自对应有一个内存回收比例。其中文件页比重越高,表征越需要更快的内存回收效率。那么在检测到有进行内存回收的进程开始运行后,如果检测到当前有应用程序A在运行,那么就对应的,将应用程序A对应的比例“10:190”作为内存回收比例。如果检测到当前有应用程序B在运行,那么就对应的,将应用程序B对应的比例“20:180”作为内存回收比例。
需要说明的是,在一种方式中,可以结合进程本身对应的比例以及当前处于运行状态的应用程序的比例共同确定当前场景对应的比例。例如,在前述表中进程标识“directreclaim”对应的比例为“0:200”,而若检测到应用程序A当前处于运行状态时,该应用程序A对应的比例为“10:190”,那么当同时检测到进程“direct reclaim”处于运行状态,且检测到应用程序A在运行时,可以将处于运行状态的应用程序对应的比例与当前处于运行状态的负载内存回收的进程的标识对应的比例取均值作为当前内存回收场景的内存回收比例,从而使得既可以在一定程度上满足进程对应的内存回收比例,也能够在一定程度上满足应用程序对于内存回收比例的需求。例如,在前述表中进程标识“direct reclaim”对应的比例为“0:200”,而该应用程序A对应的比例为“10:190”,那么取均值后得到的比例为5:195。
可以理解的是,并不一定是任一一个应用程序都会对应一个比例。而可以只是被特定标记的应用程序会对应有一个比例。可选的,在电子设备中,可以通过建立名单的方式来对特定的应用程序进行标记。那么在这种方式下,为了便于可以快速对当前的应用程序是否为前述特定的应用程序(配置有内存回收比例的应用程序)进行判断,可选的,当有特定的应用程序启动以后,生成一个伴随文件,在该伴随文件中写入当前正在运行的特定的应用程序的标识。那么在这种方式下,当检测到有负责内存回收的进程启动以后,可以查询是否有伴随文件生成,若有,则将伴随文件中记录的应用程序对应的内存回收比例与当前启动的负责内存回收的进程对应的内存回收比例进行结合(例如,前述的取平均)来得到当前内存回收场景对应的内存回收比例。而若检测到没有伴随文件存在,则直接按照负责内存回收的进程对应的内存回收比例作为当前内存回收场景对应的内存回收比例。
需要说明的是,对于通过检测应用程序来判定当前内存回收场景的方式中。还可以通过预判即将有哪些应用程序即将启动来确定当前的内存回收场景。例如,在一种方式中,电子设备的某些应用程序是定时启动的,例如,闹钟程序。或者有的应用程序会因为用户的使用习惯而在每天的某个时间段内惯例性的启动。例如,外卖类的应用程序,可能会在每天接近饭点的时候惯例性启动,再或者视频类的应用程序可能会在用户每天坐地铁的时候惯例性的被用户启动。
步骤S230:基于所述内存回收比例进行内存回收。
本申请提供的一种内存回收方法,当进入内存回收场景时,获取指定时间段内的CPU使用率,然后获取与所述CPU使用率对应的表征多种内存回收对象之间的比例的内存回收比例,基于所述内存回收比例进行内存回收。从而使得在不同内存回收场景对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存回收场景,然后根据当前的内存回收场景来确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性,并且因为所述指定时间段内的CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低,进而可以在CPU使用率较高时,更多的回收不消耗CPU资源或者消耗CPU资源的内存回收对象,提升电子设备的流畅性。
请参阅图5,本申请实施例提供的一种内存回收方法,所述方法包括:
步骤S310:当进入内存回收场景时,获取CPU使用率。
步骤S320:获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低。
步骤S330:基于所述内存回收比例进行内存回收。
步骤S340:获取当前的内存回收场景所对应的内存回收目标。
步骤S350:基于所述内存回收比例确定多种内存回收对象各自对应的内存回收目标。
步骤S360:若存在单个内存回收对象对应的内存回收目标,大于所述单个内存回收对象当前可回收的内存量,获取内存差值,所述内存差值为所述单个内存回收对象对应的内存回收目标与所述当前可回收的内存量的差值。
可以理解的是,对于多种内存回收对象可以回收到的内存量是有一定限制的。例如,若当前内存中匿名页一共有200MB,那么最多回收到的匿名页的数据量也只有200MB。那么在这种情况下,若既配置有内存回收目标,且需要按照当前的内存回收场景进行内存回收,那么就可能会造成无法回收到语气的内存量。
那么在这种方式下,在以当前的内存回收场景对应的内存回收比例完成内存回收后,获取按照当前的内存回收场景所对应的内存回收目标,未完成内存回收目标的对象为待处理内存回收对象。进而计算该待处理内存回收对象对应的内存回收目标与所述当前可回收的内存量的差值,作为前述的内存差值,然后从其他内存回收对象中再进一步回收该内存差值对应的内存量,以便既可以按照既定的内存回收比例来执行内存回收,也可以完成既定的内存回收目标。
步骤S370:增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标,以满足所述当前的内存回收场景所对应的内存回收目标。
示例性的,以匿名页和文件页为例,内存回收比例为50:150,且内存回收目标为100MB。那么可以理解的是,匿名页需要回收25MB,而文件页需要回收75MB。但是,匿名页当前可以回收的量只有15MB。因此,在按照比例进行回收之后实际只回收了75MB+15MB=90MB,那么可以理解的是,按照前述的内存差值计算规则,得到内存差值为25-15=10MB,那么对应的,会再回收10MB的文件页作为补充。
需要说明的是,根据前述的内存回收原则,配置多种内存回收方式主要是为了提升内存回收效率。而对于多个内存回收对象而言,不同的内存回收对象的回收代价是不同的。那么如果增加的反而是内存回收效率更低的内存回收对象的回收量,可能不利于整体提升回收效率。那么作为一种方式,所述多种内存回收对象包括匿名页以及文件页,所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标的步骤之前还包括:若增加内存回收目标的内存回收对象为文件页;执行所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标;若增加内存回收目标的内存回收对象为匿名页;不增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标。从而通过这种方式,可以在整体上提升内存回收效率。
需要说明的是,作为一种方式,步骤S330和步骤S370可以多进程并行进行,以便提升回收效率。
作为一种方式,所述多种内存回收对象包括匿名页以及文件页,所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标的步骤之前还包括:若增加内存回收目标的内存回收对象为文件页;执行所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标;若增加内存回收目标的内存回收对象为匿名页;不增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标。
本申请提供的一种内存回收方法,当进入内存回收场景时,获取CPU使用率,然后获取与所述CPU使用率对应的表征多种内存回收对象之间的比例的内存回收比例,基于所述内存回收比例进行内存回收。从而使得在不同内存回收场景对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存回收场景,然后根据当前的内存回收场景来确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性,并且因为所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低,进而可以在CPU使用率较高时,更多的回收不消耗CPU资源或者消耗CPU资源的内存回收对象,提升电子设备的流畅性。
并且,在不同的内存回收对象之间具有比例关系的情况下,进一步的会在存在单个内存回收对象对应的内存回收目标,大于所述单个内存回收对象当前可回收的内存量的情况下,增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标,以满足所述当前的内存回收场景所对应的内存回收目标,以便保证既可以按照当前的场景对应的内存回收比例进行内存回收,也可以同时满足当前的内存回收目标。
请参阅图6,本申请实施例提供的一种内存回收装置400,所述装置400包括:
处理信息获取单元410,用于当进入内存回收场景时,获取CPU使用率。
作为一种方式,处理信息获取单元410,具体用于当进入内存回收场景时,获取CPU使用率。
可选的,处理信息获取单元410,具体用于将周期性的历史时间段距离当前时刻最近的一个的历史时间段作为指定时间段;获取存储的基于所述指定时间段内的CPU空闲时间以及CPU总使用时间计算得到的CPU使用率。
可选的,处理信息获取单元410,具体用于获取当前的应用程序特征参数,所述应用程序特征参数表征应用程序对CPU处理资源的占用程度;基于所述应用程序特征参数计算得到与当前时刻所处的时间段对应的目标历史时间段作为指定时间段;获取存储的所述历史指定时间段内的CPU使用率。
其中,作为一种方式,处理信息获取单元410,具体用于将所述当前的应用程序特征参数与多个历史时间段的应用程序特征参数进行比对;将对应的应用程序特征参数与所述当前的应用程序特征参数相同的历史时间段作为对应的目标历史时间段;将所述目标历史时间段作为指定时间段。
作为一种方式,如图7所示,所述装置410,还包括:
特征参数计算单元411,用于获取每个时间段内运行的应用程序的数量以及优先级,其中,优先级越高所对应的历史运行过程中所占用的内存越高;获取与所述数量对应的第一评分;获取与所述优先级对应的第二评分;基于所述第一评分以及对应的第一预设权重,以及所述第二评分以及对应的第二预设权重计算得到每个时间段对应的应用程序特征参数。
内存信息获取单元420,用于获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低。
内存回收单元430,用于基于所述内存回收比例进行内存回收。
作为一种方式,如图8所示,所述装置400,还包括:
内存增量回收单元440,用于获取当前的内存回收场景所对应的内存回收目标;基于所述内存回收比例确定多种内存回收对象各自对应的内存回收目标;若存在单个内存回收对象对应的内存回收目标,大于所述单个内存回收对象当前可回收的内存量,获取内存差值,所述内存差值为所述单个内存回收对象对应的内存回收目标与所述当前可回收的内存量的差值;增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标,以满足所述当前的内存回收场景所对应的内存回收目标。
可选的,所述多种内存回收对象包括匿名页以及文件页。内存增量回收单元440,还用于若增加内存回收目标的内存回收对象为文件页;执行所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标;若增加内存回收目标的内存回收对象为匿名页;不增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图9对本申请提供的一种电子设备进行说明。
请参阅图9,基于上述的内存回收方法、装置,本申请实施例还提供的另一种可以执行前述内存回收方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104以及网络模块106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
所述网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
请参考图10,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
综上所述,本申请提供的一种内存回收方法、装置以及电子设备,当进入内存回收场景时,获取CPU使用率,然后获取与所述CPU使用率对应的表征多种内存回收对象之间的比例的内存回收比例,基于所述内存回收比例进行内存回收。从而使得在不同内存回收场景对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存回收场景,然后根据当前的内存回收场景来确定对于多种内存回收对象该各自回收多少,进而提升了内存回收过程的灵活性,并且因为所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低,进而可以在CPU使用率较高时,更多的回收不消耗CPU资源或者消耗CPU资源的内存回收对象,提升电子设备的流畅性。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种内存回收方法,其特征在于,所述方法包括:
当进入内存回收场景时,获取CPU使用率;
获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低;
基于所述内存回收比例进行内存回收。
2.根据权利要求1所述的方法,其特征在于,获取CPU使用率的步骤包括:
获取指定时间段内的CPU使用率。
3.根据权利要求2所述的方法,其特征在于,所述获取指定时间段内的CPU使用率的步骤包括:
将周期性的历史时间段距离当前时刻最近的一个的历史时间段作为指定时间段;
获取存储的基于所述指定时间段内的CPU空闲时间以及CPU总使用时间计算得到的CPU使用率。
4.根据权利要求2所述的方法,其特征在于,所述获取指定时间段内的CPU使用率的步骤包括:
获取当前的应用程序特征参数,所述应用程序特征参数表征应用程序对CPU处理资源的占用程度;
基于所述应用程序特征参数计算得到与当前时刻所处的时间段对应的目标历史时间段作为指定时间段;
获取存储的所述历史指定时间段内的CPU使用率。
5.根据权利要求4所述的方法,其特征在于,所述基于所述应用程序特征参数计算得到与当前时刻所处的时间段对应的目标历史时间段作为指定时间段的步骤包括:
将所述当前的应用程序特征参数与多个历史时间段的应用程序特征参数进行比对;
将对应的应用程序特征参数与所述当前的应用程序特征参数相同的历史时间段作为对应的目标历史时间段;
将所述目标历史时间段作为指定时间段。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取每个时间段内运行的应用程序的数量以及优先级,其中,优先级越高所对应的历史运行过程中所占用的内存越高;
获取与所述数量对应的第一评分;
获取与所述优先级对应的第二评分;
基于所述第一评分以及对应的第一预设权重,以及所述第二评分以及对应的第二预设权重计算得到每个时间段对应的应用程序特征参数。
7.根据权利要求1所述的方法,其特征在于,所述基于所述内存回收比例进行内存回收的步骤之后还包括:
获取当前的内存回收场景所对应的内存回收目标;
基于所述内存回收比例确定多种内存回收对象各自对应的内存回收目标;
若存在单个内存回收对象对应的内存回收目标,大于所述单个内存回收对象当前可回收的内存量,获取内存差值,所述内存差值为所述单个内存回收对象对应的内存回收目标与所述当前可回收的内存量的差值;
增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标,以满足所述当前的内存回收场景所对应的内存回收目标。
8.根据权利要求7所述的方法,其特征在于,所述多种内存回收对象包括匿名页以及文件页,所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标的步骤之前还包括:
若增加内存回收目标的内存回收对象为文件页;
执行所述增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标;
若增加内存回收目标的内存回收对象为匿名页;
不增加所述单个内存回收对象以外的内存回收对象对应的内存回收目标。
9.一种内存回收装置,其特征在于,所述装置包括:
处理信息获取单元,用于当进入内存回收场景时,获取CPU使用率;
内存信息获取单元,用于获取与所述CPU使用率对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,其中,所述CPU使用率越高所对应的内存回收比例中回收时需要消耗CPU资源的内存回收对象的比重越低;
内存回收单元,用于基于所述内存回收比例进行内存回收。
10.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行权利要求1-8任一所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-8任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910925510.2A CN110704189A (zh) | 2019-09-27 | 2019-09-27 | 内存回收方法、装置以及电子设备 |
PCT/CN2020/116248 WO2021057623A1 (zh) | 2019-09-27 | 2020-09-18 | 内存回收方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910925510.2A CN110704189A (zh) | 2019-09-27 | 2019-09-27 | 内存回收方法、装置以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704189A true CN110704189A (zh) | 2020-01-17 |
Family
ID=69198201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910925510.2A Pending CN110704189A (zh) | 2019-09-27 | 2019-09-27 | 内存回收方法、装置以及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110704189A (zh) |
WO (1) | WO2021057623A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021057619A1 (zh) * | 2019-09-27 | 2021-04-01 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及存储介质 |
WO2021057623A1 (zh) * | 2019-09-27 | 2021-04-01 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及存储介质 |
WO2022052897A1 (zh) * | 2020-09-10 | 2022-03-17 | 荣耀终端有限公司 | 调整内存配置参数的方法和装置 |
US11995317B2 (en) | 2020-09-10 | 2024-05-28 | Honor Device Co., Ltd. | Method and apparatus for adjusting memory configuration parameter |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778086A (zh) * | 2015-04-15 | 2015-07-15 | 天脉聚源(北京)教育科技有限公司 | 一种释放资源的方法及装置 |
CN109857555A (zh) * | 2019-01-15 | 2019-06-07 | Oppo广东移动通信有限公司 | 内存回收方法及装置、存储介质和电子设备 |
US20190205250A1 (en) * | 2017-12-29 | 2019-07-04 | Guangdong Oppo Mobile Telecommunications Corp., Lt D. | Method and device for processing a memory and storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060074872A1 (en) * | 2004-09-30 | 2006-04-06 | International Business Machines Corporation | Adaptive database buffer memory management using dynamic SQL statement cache statistics |
CN108228449B (zh) * | 2017-08-15 | 2021-02-19 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
CN109697119A (zh) * | 2017-10-20 | 2019-04-30 | 中兴通讯股份有限公司 | 终端内存回收处理方法及装置 |
CN110727606A (zh) * | 2019-09-27 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN110704189A (zh) * | 2019-09-27 | 2020-01-17 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
-
2019
- 2019-09-27 CN CN201910925510.2A patent/CN110704189A/zh active Pending
-
2020
- 2020-09-18 WO PCT/CN2020/116248 patent/WO2021057623A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778086A (zh) * | 2015-04-15 | 2015-07-15 | 天脉聚源(北京)教育科技有限公司 | 一种释放资源的方法及装置 |
US20190205250A1 (en) * | 2017-12-29 | 2019-07-04 | Guangdong Oppo Mobile Telecommunications Corp., Lt D. | Method and device for processing a memory and storage medium |
CN109992523A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN109857555A (zh) * | 2019-01-15 | 2019-06-07 | Oppo广东移动通信有限公司 | 内存回收方法及装置、存储介质和电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021057619A1 (zh) * | 2019-09-27 | 2021-04-01 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及存储介质 |
WO2021057623A1 (zh) * | 2019-09-27 | 2021-04-01 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及存储介质 |
WO2022052897A1 (zh) * | 2020-09-10 | 2022-03-17 | 荣耀终端有限公司 | 调整内存配置参数的方法和装置 |
US11995317B2 (en) | 2020-09-10 | 2024-05-28 | Honor Device Co., Ltd. | Method and apparatus for adjusting memory configuration parameter |
Also Published As
Publication number | Publication date |
---|---|
WO2021057623A1 (zh) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727606A (zh) | 内存回收方法、装置以及电子设备 | |
CN110727607B (zh) | 内存回收方法、装置以及电子设备 | |
CN110764906B (zh) | 内存回收处理方法、装置、电子设备以及存储介质 | |
CN110704189A (zh) | 内存回收方法、装置以及电子设备 | |
CN110888746B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
EP2921963B1 (en) | Memory recycling method and device | |
CN111158910B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN110765031B (zh) | 数据存储方法、装置、移动终端及存储介质 | |
CN110727605B (zh) | 内存回收方法、装置以及电子设备 | |
CN110018900B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN111274039B (zh) | 内存回收方法、装置、存储介质及电子设备 | |
CN110737606B (zh) | 内存回收处理方法、装置、电子设备以及存储介质 | |
CN111984413A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN115421909A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN111078587B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN110543432B (zh) | 内存碎片整理方法、装置、终端及存储介质 | |
CN115421907A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN112052089B (zh) | 内存回收方法、装置以及电子设备 | |
CN111090627B (zh) | 基于池化的日志存储方法、装置、计算机设备及存储介质 | |
CN112070144A (zh) | 图像聚类方法、装置、电子设备以及存储介质 | |
CN111078405A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN113934692A (zh) | 文件清理方法、装置、存储介质及设备 | |
CN111833232A (zh) | 一种图像处理装置 | |
CN112684878B (zh) | 数据传输方法和电子设备 | |
CN116303110B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200804 Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: 401120 No. 188 Yulong Avenue, Yufengshan Town, Yubei District, Chongqing Applicant before: OPPO (CHONGQING) INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200117 |