内存回收方法、装置以及电子设备制造方法及图纸

技术编号:23190813 阅读:17 留言:0更新日期:2020-01-24 16:14
本申请实施例公开了一种内存回收方法、装置以及电子设备。所述方法包括:获取设定窗口期内的内存分配耗时;获取与所述内存分配耗时对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,不同种类的所述内存回收对象的回收代价不同,且不同内存分配耗时对应的内存回收比例不同;基于所述内存回收比例进行内存回收。从而使得在不同内存分配耗时对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存分配耗时,然后根据当前的内存分配耗时来确定进程内存回收比例,进而提升了内存回收效率,提升了系统性能。

【技术实现步骤摘要】
内存回收方法、装置以及电子设备
本申请涉及计算机
,更具体地,涉及一种内存回收方法、装置以及电子设备。
技术介绍
内存又称主存,是CPU能直接寻址的存储空间,由半导体器件制成。电子设备中的内存的空间是有限的,为了保证系统有足够的内存可以使用,电子设备的系统通常会在一定的情况下进行内存回收。但是,在相关的内存回收方式中,还缺乏一定的灵活性。
技术实现思路
鉴于上述问题,本申请提出了一种内存回收方法、装置以及电子设备,以改善上述问题。第一方面,本申请提供了一种内存回收方法,所述方法包括:获取设定窗口期内的内存分配耗时;获取与所述内存分配耗时对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,不同种类的所述内存回收对象的回收代价不同,且不同内存分配耗时对应的内存回收比例不同;基于所述内存回收比例进行内存回收。第二方面,本申请提供了一种内存回收装置,所述装置包括:时间获取单元,用于获取当前设定窗口期内的内存分配耗时;回收参数获取单元,用于获取与所述内存分配耗时对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,不同种类的所述内存回收对象的回收代价不同,且不同内存回收场景对应的内存回收比例不同;回收单元,用于基于所述内存回收比例进行内存回收。第三方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行以实现上述的方法。第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。本申请提供的一种内存回收方法、装置以及电子设备,先获取当前设定窗口期内的内存分配耗时,然后获取与内存分配耗时对应的内存回收比例,基于所述内存回收比例进行内存回收。从而使得在不同内存分配耗时对应的内存回收比例不同的情况下,可以在内存回收开始时先获取当前的内存分配耗时,然后根据当前的内存分配耗时来确定进程内存回收比例,进而提升了内存回收效率,提升了系统性能。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请一实施例提出的一种内存回收方法的流程图;图2示出了本申请另一实施例提出的一种内存回收方法的流程图;图3示出了本申请再一实施例提出的一种内存回收方法的流程图;图4示出了本申请实施例提出的一种内存回收装置的结构框图;图5示出了本申请再一实施例提出的一种内存回收装置的结构框图;图6示出了本申请另一实施例提出的一种内存回收装置的结构框图;图7示出了本申请再一实施例提出的一种内存回收单元的结构框图;图8示出了本申请实时中的用于执行根据本申请实施例的内存回收方法的电子设备的结构框图;图9示出了本申请实时中的用于保存或者携带实现根据本申请实施例的内存回收方法的程序代码的存储单元。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。对于操作系统而言,因为内存本身的大小是有限的,所以内存回收是一个较为普遍的机制。而之所以要进行内存回收,主要原因有两个:系统需要为任何时刻突发到来的内存申请提供足够的内存,以便cache的使用和其他相关内存的使用不至于让系统的剩余内存长期处于很少的状态。还有,当有大于空闲内存的申请到来的时候,也会触发内存回收。目前,Linux内核内存回收技术是:仅当检测到内存空间不足时才会进行内存回收。然而,在出现大内存使用场景(例如,需要缓存大文件、启动较大应用程序等)的情况下,如果内存空间不足才去进行内存回收的过程,则会导致系统反应慢、卡顿的问题,严重影响设备的性能和用户体验。而专利技术人在对相关的内存回收过程的研究发现,相关的内存回收方式还缺乏一定的灵活性。例如,以Android操作系统为例。在Android操作系统中,主要存在有两种内存回收机制。一种是基于kswapd进程的回收机制,在这种回收机制中,kswapd进程定期在后台运行。另一种是基于directreclaim进程的回收机制,在这种回收机制中,directreclaim进程在接收到内存分配需求时,开始进行内存回收。因此,可以发现相关的内存回收方式的内存回收参数较为固定。因此,专利技术人提出了本申请中的在不同内存分配耗时对应的内存回收比例不同的情况下,可以在内存回收开始前先获取当前的内存分配耗时,然后根据当前的内存分配耗时来确定进程内存回收比例,进而提升了内存回收效率,提升了系统性能的内存回收的方法、装置以及电子设备。下面将结合附图具体描述本申请的各实施例。请参阅图1,本申请实施例提供的一种内存回收方法,所述方法包括:步骤S110:获取设定窗口期内的内存分配耗时。可以理解的是,当电子设备进行内存分配的时候,例如,大内存分配的时候,系统当前可用内存不一定能满足当前的内存分配需求,所以需要回收内存来满足内存分配需求,而在回收的过程中是需要消耗一定的时间的,所以电子设备在内存分配的过程中可能会消耗一定的时间。作为一种方式,在本申请实施例中,可以在开始内存回收的时候获取预先计算好的当前设定窗口期内的内存分配耗时,其中,作为一种方式,可以在检测到有负责进行内存回收的进程开始运行时,判定当前开始进行内存回收。例如,若本实施例所运行的环境为Android操作系统中,那么可以在检测到有kswapd进程或者directreclaim进程运行时,判定当前开始进行内存回收。需要说明的是,获取设定窗口期内的内存分配耗时,这里的设定窗口期指的是电子设备根据应用程序进行内存回收时所需的时间给出的修改内存回收比例的多个周期性的时间段,其中,一个时间段可以作为一个设定窗口期。其中,对于设定窗口期的长度可以根据多种情况进行调节。可选的,作为一种方式,可以统计电子设备中应用程序的使用频率,而基于该使用频率将全天时间划分为多个时间段,然后针对每个时间段对应配置一个设定窗口期的长度。可选的,作为另外一种方式,所述设定窗口期的长度可以根据移动终端中处于运行状态的应用程序的数量动态延长或者缩短。再者,需要说明的是,对于一些应用程序在运行过程中,对于内存消耗是有一定的需求的,那么针对不同的应用程序来确定不同的内存分配耗时,可以更好的对应用程序流畅运行带来有利的条件。例如,对于一些应用程序在运行的过程中可能频繁的需要申请内存。例如,对于短视频类的应用程序,可能会增量性的申请内存分配来缓存所请求的短视频。例如,对于本文档来自技高网...

【技术保护点】
1.一种内存回收方法,其特征在于,所述方法包括:/n获取设定窗口期内的内存分配耗时;/n获取与所述内存分配耗时对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,不同种类的所述内存回收对象的回收代价不同,且不同内存分配耗时对应的内存回收比例不同;/n基于所述内存回收比例进行内存回收。/n

【技术特征摘要】
1.一种内存回收方法,其特征在于,所述方法包括:
获取设定窗口期内的内存分配耗时;
获取与所述内存分配耗时对应的内存回收比例,所述内存回收比例表征多种内存回收对象之间的比例,不同种类的所述内存回收对象的回收代价不同,且不同内存分配耗时对应的内存回收比例不同;
基于所述内存回收比例进行内存回收。


2.根据权利要求1所述的方法,其特征在于,所述获取与所述内存分配耗时对应的内存回收比例的步骤包括:
获取当前初始内存回收比例;
根据内存分配耗时确定内存回收比例更新策略;
基于所述内存回收比例更新策略得到所述内存分配耗时对应的内存回收比例。


3.根据权利要求2所述的方法,其特征在于,所述根据内存分配耗时确定内存回收比例更新策略的步骤包括:
若所述内存分配耗时小于等于第一预设阈值,则所述当前进程内存回收比例为默认内存回收比例;
若所述内存分配耗时大于所述第一预设阈值且小于等于第二预设阈值,则当前进程更新内存回收比例为第一内存回收比例;其中,所述第一预设阈值小于所述第二预设阈值;
若所述内存分配耗时大于所述第二预设阈值且小于等于第三预设阈值,则当前进程更新内存回收比例为第二内存回收比例;其中,所述第二预设阈值小于所述第三预设阈值;
若所述内存分配耗时大于所述第三预设阈值,则当前进程更新内存回收比例为第三内存回收比例。


4.根据权利要求1所述的方法,其特征在于,所述基于所述内存回收比例进行内存回收的步骤之前还包括:
获取当前系统可用内存;
计算所述当前系统可用内存与第一内存之差得到第二内存;
比较所述第二内存和当前应用程序所需内存容量的大小;
当所述所需内存容量小于所述第二内存时,执行所述基于所述内存回收比例进行内存回收。


5.根据权利要求...

【专利技术属性】
技术研发人员:周华材
申请(专利权)人:OPPO重庆智能科技有限公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1