CN115509953A - 内存回收方法及其装置 - Google Patents
内存回收方法及其装置 Download PDFInfo
- Publication number
- CN115509953A CN115509953A CN202211348720.8A CN202211348720A CN115509953A CN 115509953 A CN115509953 A CN 115509953A CN 202211348720 A CN202211348720 A CN 202211348720A CN 115509953 A CN115509953 A CN 115509953A
- Authority
- CN
- China
- Prior art keywords
- recycling
- threads
- target
- page
- memory
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced 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]
- 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]
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请公开了一种内存回收方法及其装置,属于通信技术领域。该方法包括:确定N个回收线程,并将N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,目标核心为CPU中运行频率最高的核心,N为大于0的偶数;在电子设备中的剩余内存小于第一预设阈值的情况下,通过N个回收线程回收目标页;在通过N个回收线程回收目标页的过程中、且电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收目标页。
Description
技术领域
本申请属于通信技术领域,具体涉及一种内存回收方法及其装置。
背景技术
目前,电子设备中的应用程序越来越多,当电子设备后台运行的应用程序较多时,占用了电子设备中大量的内存资源,电子设备可能会出现卡顿的情况,现有技术中,当内存不足时,电子设备可以关闭一些不常用的后台应用的进程来回收其占有的内存,从而将回收后的内存分配给其他应用程序。
然而,若电子设备回收内存的效率较低,则电子设备中前台运行的应用仍然不能及时申请到所需的内存,导致电子设备出现卡顿以及电子设备执行操作的速度较慢的情况。
发明内容
本申请实施例的目的是提供一种内存回收方法、装置、电子设备及存储介质,能够解决电子设备出现卡顿以及电子设备执行操作的速度较慢的问题。
第一方面,本申请实施例提供了一种内存回收方法,该内存回收方法包括:确定N个回收线程,并将N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,目标核心为CPU中运行频率最高的核心,N为大于0的偶数;在电子设备中的剩余内存小于第一预设阈值的情况下,通过N个回收线程回收目标页;在通过N个回收线程回收目标页的过程中、且在电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收目标页。
第二方面,本申请实施例提供了一种内存回收装置,该内存回收装置包括:处理模块和回收模块。处理模块,用于确定N个回收线程,并将N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,目标核心为CPU中运行频率最高的核心,N为大于0的偶数。回收模块,用于在电子设备中的剩余内存小于第一预设阈值的情况下,通过N个回收线程回收目标页;并在通过N个回收线程回收目标页的过程中、且电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收目标页。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,电子设备可以确定N个(N为大于0的偶数)回收线程,并将该N个回收线程与电子设备中的CPU除目标核心之外的核心绑定,该目标核心为CPU中运行频率最高的核心,然后,在电子设备中的剩余内存小于第一预设阈值的情况下,电子设备可以通过偶数个回收线程回收目标页,在通过N个回收线程回收目标页的过程中、且电子设备可使用的内存大于或等于第二预设阈值的情况下,停止回收目标页。本方案中,由于电子设备可以通过N个回收线程共同回收目标页,可以提高内存释放的速度,从而提升了电子设备申请内存的速度,进而避免了因内存申请的速度慢导致的电子设备运行卡顿的问题,而且,通过将N个回收线程与CPU中除目标核心之外的核心绑定,避免了回收线程与UI线程抢占超大核(即CPU的目标核心)的内存资源导致电子设备运行卡顿的问题,如此,在提高了电子设备内存回收效率的同时,也提升了电子设备运行的流畅度。
附图说明
图1是本申请实施例提供的一种内存回收方法的流程图;
图2是本申请实施例提供的一种内存回收装置的结构示意图;
图3是本申请实施例提供的一种电子设备的硬件结构示意图之一;
图4是本申请实施例提供的一种电子设备的硬件结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的内存回收方法进行详细地说明。
目前,随着电子设备的发展和普及给用户的生活和工作带来了极大的便利,日常生活中用户使用电子设备的场景也越来越多,电子设备中的应用程序也随之增多,随着应用程序占用内存的不断扩大,电子设备中的可用内存会越来越少,如此,当电子设备中的应用程序需要申请大量内存时,可能会出现内存申请过慢或申请不到内存的情况,在某些应用程序对内存申请有速度要求的时,若内存申请的速度较慢,则电子设备会出现卡顿或掉帧的现象,而内存申请慢的主要原因是内存回收较慢,现有技术中,电子设备中可以通过一个专用的回收线程(例如kswapd线程)负责内存回收,但该kswapd线程需要同时回收文件页和匿名页,回收效率较低,而且当电子设备中的某些应用程序需要大量内存时,kswapd线程会被频繁唤醒,做内存回收,由于kswapd线程属于内核线程,所以经常会被电子设备中的CPU调度到超大核上运行,此时,若CPU的负载比重较大时,kswapd线程会与用户界面(UserInterface,UI)线程(超大核管理的内存资源较多,且运行频率最高,如此UI线程可以及时申请到所需要的内存资源)在超大核抢占资源,导致UI线程不能及时得到内存资源,进而电子设备可能出现卡顿,影响用户的交互体验。
本申请实施例中,电子设备可以确定N个(N为大于0的偶数)回收线程,并将该N个回收线程与电子设备中的CPU除目标核心之外的核心绑定,该目标核心为CPU中运行频率最高的核心,然后,在电子设备中的剩余内存小于第一预设阈值的情况下,电子设备可以通过偶数个回收线程回收目标页,在通过N个回收线程回收目标页的过程中、且电子设备可使用的内存大于或等于第二预设阈值的情况下,停止回收目标页。本方案中,由于电子设备可以通过N个回收线程共同回收目标页,可以提高内存释放的速度,从而提升了电子设备申请内存的速度,进而避免了因内存申请的速度慢导致的电子设备运行卡顿的问题,而且,通过将N个回收线程与CPU中除目标核心之外的核心绑定,避免了回收线程与UI线程抢占超大核(即CPU的目标核心)的内存资源导致电子设备运行卡顿的问题,如此,在提高了电子设备内存回收效率的同时,也提升了电子设备运行的流畅度。
本申请实施例提供的内存回收方法的执行主体可以为内存回收装置,该内存回收装置可以为电子设备,或电子设备中的功能模块。以下以电子设备为例,对本申请实施例提供的技术方案进行说明。
本申请实施例提供一种内存回收方法,图1示出了本申请实施例提供的一种内存回收方法的流程图。如图1所示,本申请实施例提供的内存回收方法可以包括下述的步骤201至步骤203。
步骤201、电子设备确定N个回收线程,并将N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定。
本申请实施例中,上述目标核心为CPU中运行频率最高的核心,N为大于0的偶数。
示例性地,若CPU包含3个核心,分别为第一核心、第二核心和目标核心,该第一核心的运行频率小于第二核心,该第二核心的运行频率小于目标核心,电子设备在得到N个回收线程之后,电子设备可以将该N个回收线程与第一核心和第二核心绑定,如此,电子设备在通过N个回收线程进行内存回收的过程中,电子设备并不会抢占目标核心的线程资源,从而避免了回收线程与UI线程抢占超大核(即CPU的目标核心)的内存资源导致电子设备运行卡顿的问题。
可选地,本申请实施例中,上述步骤201具体可以通过下述的步骤201a实现。
步骤201a、电子设备基于电子设备中的X个目标应用程序在至少两个连续的预定时长内的内存回收量,确定回收线程的数量,X为大于1的整数。
本申请实施例中,若电子设备确定的回收线程的数量为奇数,则电子设备对回收线程的数量进行向上取整,以得到偶数个回收线程。
可选地,本申请实施例中,上述X个目标应用程序为电子设备预先设置的应用程序或电子设备根据用户的使用时长确定的。
示例性地,电子设备可以获取5个用户最常使用的应用程序在10分钟内的内存回收量,并记为N1,然后记录每隔10分钟内的该5个应用程序的内存回收量,记为NT,然后将该2*(NT/N1)并向上取整,以确定回收线程的数量。
可选地,本申请实施例中,电子设备在确定回收线程的数量之后,电子设备可以根据***当前的压力值,根据确定的回收线程的数量,更新回收线程的数量。
需要说明的是,电子设备可以每隔预设时长根据X个目标应用程序在至少两个连续的预定时长内的内存回收量重新确定回收线程的数量。
可选地,本申请实施例中,电子设备可以根据回收内存分配路径耗时时间确定当前***当前的压力值,并根据该压力值,更新回收线程的数量。
示例性地,在电子设备回收内存分配路径耗时时间的均值超过100ms时,电子设备可以将获取的回收线程的数量,确定为当前使用的回收线程的数量;或者在电子设备回收内存分配路径耗时时间中存在单次回收时长超过2S时,电子设备可以将获取的回收线程的数量,确定为当前使用的回收线程的数量。
可选地,本申请实施例中,当电子设备中***回收压力大于或等于预设阈值时,电子设备可以立即更新回收线程的数量,或者当电子设备中***回收压力小于预设阈值时,电子设备可以每隔预设时长更新一次回收线程的数量。
具体地,电子设备可以通过电子设备中的Kernel底层节点,更新回收线程的数量。
本申请实施例中,电子设备可以根据X个目标应用程序在至少两个连续的预定时长内的内存回收量,动态确定当前回收线程的数量,从而根据电子设备当前***状态,选择合适的数量的回收线程,在提高了电子设备内存回收的效率的同时,也降低了电子设备运行多个回收线程的功耗。
步骤202、在电子设备中的剩余内存小于第一预设阈值的情况下,电子设备通过N个回收线程回收目标页。
可选地,本申请实施例中,上述目标包括:文件页和匿名页。
本申请实施例中,文件页用于表征电子设备中可回收的内存;匿名页用于表征电子设备所分配的内存。
本申请实施例中,电子设备可以通过N个回收线程进行剩余内存的回收,从而减少单个回收线程的运行时间,进而避免因单个回收线程的运行时间过长导致电子设备发热进而功耗较大的问题。
可选地,本申请实施例中,上述N个回收线程可以为用户自定义的;或者电子设备根据特定参数(即下述目标页的文件压缩速度和文件随机读写速度)确定的。
需要说明的是,上述N个回收线程中的每个回收线程均为kswapd线程。
具体地,针对N个回收线程可以为用户自定义的,用户可以在回收线程设置界面中设置回收线程的数量,然后,电子设备在获取用户输入的回收线程的数量之后,对该回收线程的数量进行向下取偶,以得到N个回收线程。
示例性地,电子设备可以根据用户设置的kswapd线程的数量,决定需要初始化多少个kswapd线程,判断用户设置的值是否为偶数,若是偶数,则电子设备就初始化这么多个kswapd线程,若是奇数,则就减一变为偶数作为kswapd线程初始化的数量。
可选地,本申请实施例中,电子设备可以在回收线程设置界面显示提示消息,以提示用户输入的数量至少为两个。
可选地,本申请实施例中,用户可以在电子设备回收内存的过程中,在回收线程设置界面重新设置kswapd线程的数量,然后电子设备可以根据用户设置的kswapd线程的数量,重新进行初始化(即上述向下取偶的过程),从而根据重新初始化后的线程数量进行下次的内存回收操作。
可选地,本申请实施例中,上述步骤202中的“电子设备通过N个回收线程回收目标页”具体可以通过下述的步骤301实现。
步骤301、电子设备通过N个回收线程中的M个回收线程回收文件页,并通过N个回收线程中除M个回收线程以外的其他L个回收线程回收匿名页,M和L为小于N的偶数。
示例性地,N个kswapd线程运行的条件仍然为剩余内存低于low水位(即上述第一预设阈值),N个kswapd线程中的一半回收文件页,一半回收匿名页,从而可以并行加速回收。
可选地,电子设备可以根据应用程序的使用情况,向该应用程序分配对应的数量的kswapd线程。
示例性地,若应用程序为前台应用程序,则向该应用程序分配两个kswapd线程,即在该应用程序做内存回收时,电子设备可以一次唤醒两个kswapd线程;若应用程序为后台应用程序,则向该应用程序分配一个kswapd线程,即在该应用程序做内存回收时,电子设备可以一次唤醒一个kswapd线程。
本申请实施例中,电子设备可以通过N个回收线程分别回收文件页和匿名页,如此,电子设备可以并行进行内存回收,提高电子设备内存回收的效率。
可选地,本申请实施例中,上述可选地,本申请实施例中,上述步骤301中的“电子设备通过N个回收线程中的M个回收线程回收文件页”具体可以通过下述的步骤301a实现。
步骤301a、在电子设备中的CPU的负载大于或等于预定负载的情况下,电子设备通过M个回收线程优先回收文件页。
可以理解,由于电子设备回收文件页需要的CPU负载资源较小,所以在CPU的负载大于或等于预定负载的情况下,电子设备可以优先回收文件页,从而在保证电子设备可以正常运行的情况下,也可以进行内存回收,提高电子设备内存回收的效率。
可选地,本申请实施例中,上述步骤301中的“电子设备通过N个回收线程中除M个回收线程以外的其他L个回收线程回收匿名页”具体可以通过下述的步骤301b实现。
步骤301b、在电子设备中的CPU的负载小于预定负载的情况下,通过L个回收线程优先回收匿名页。
可以理解,由于电子设备回收匿名页需要的CPU负载资源较大,所以在CPU的负载小于预定负载的情况下,电子设备可以优先回收匿名页。
本申请实施例中,电子设备可以根据CPU的负载压力,动态选择当前优先回收的内存,避免了电子设备中CPU的负载压力过大仍然回收匿名页导致电子设备内存回收的效率较低,如此,提高了电子设备内存回收的灵活性和效率。
可选地,本申请实施例中,上述步骤202中的“电子设备通过N个回收线程回收目标页”具体可以通过下述的步骤401和步骤402实现。
步骤401、电子设备根据目标页的文件压缩速度和文件随机读写速度,确定目标值。
本申请实施例中,上述目标值用于指示N个回收线程回收目标页的数量。
需要说明的是,上述目标值为swappiness值。
可选地,本申请实施例中,电子设备可以根据目标页的当前文件压缩速度的均值和当前文件随机读写速度均值,确定电子设备当前可回收的目标页的数量;或者,电子设备可以根据目标页的历史文件压缩速度的均值和历史文件随机读写速度的均值,确定电子设备当前可回收目标页的数量。
示例性地,电子设备规定swappiness的值为0-200之间。swappiness的初值一般为***默认设置值,***一般取60,随着电子设备运行,每隔500ms电子设备可以记录一次目标页的文件压缩速度的均值,并记为A,和文件随机读写速度的均值,并记为F,然后使用A和F计算实时的swappines值,具体公式如下:
swappiness=N·X=200N/(N+1) (公式1)
其中,N为A和F的比值,X为常数,X=200/(N+1)。
步骤402、在目标值与历史值之间的变化量大于或等于第三预设阈值的情况下,电子设备根据目标值确定N个回收线程当前回收目标页的数量。
本申请实施例中,上述历史值为历史回收第一页面时所确定的目标值。
示例性地,若当前计算的swappiness值与上一次的值做差的绝对值变化量超过5%,则更新swappiness的值,然后,根据更新后的swappiness的值重新决定回收文件页和匿名页的数量,并依次循环进行内存回收。
本申请实施例中,电子设备可以根据目标页的文件压缩速度和文件随机读写速度实时动态调整目标值,从而平衡当前文件页和当前匿名页的回收比例,进而达到效率最优的内存回收效果。
步骤203、在通过N个回收线程回收目标页的过程中、且电子设备的剩余内存大于或等于第二预设阈值的情况下,电子设备停止回收目标页。
示例性地,N个kswapd线程停止运行的条件仍然为剩余内存高于high水位(即上述第二预设阈值)。
本申请实施例中,电子设备可以实时检测当前剩余内存,从而在剩余内存大于或等于第二预设阈值的情况下,停止回收目标页。
本申请实施例提供一种内存回收方法,电子设备可以确定N个(N为大于0的偶数)回收线程,并将该N个回收线程与电子设备中的CPU除目标核心之外的核心绑定,该目标核心为CPU中运行频率最高的核心,然后,在电子设备中的剩余内存小于第一预设阈值的情况下,电子设备可以通过偶数个回收线程回收目标页,在通过N个回收线程回收目标页的过程中、且电子设备可使用的内存大于或等于第二预设阈值的情况下,停止回收目标页。本方案中,由于电子设备可以通过N个回收线程共同回收目标页,可以提高内存释放的速度,从而提升了电子设备申请内存的速度,进而避免了因内存申请的速度慢导致的电子设备运行卡顿的问题,而且,通过将N个回收线程与CPU中除目标目标核心之外的核心绑定,避免了回收线程与UI线程抢占超大核(即CPU的目标核心)的内存资源导致电子设备运行卡顿的问题,如此,在提高了电子设备内存回收效率的同时,也提升了电子设备运行的流畅度。
需要说明的是,本申请实施例提供的内存回收方法,执行主体可以为内存回收装置,或者电子设备,或者还可以为电子设备中的功能模块或实体。本申请实施例中以内存回收装置执行内存回收方法为例,说明本申请实施例提供的内存回收装置。
图2示出了本申请实施例中涉及的内存回收装置的一种可能的结构示意图。如图2所示,该内存回收装置70可以包括:处理模块71和回收模块72。
其中,处理模块71用于确定N个回收线程,并将N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,目标核心为CPU中运行频率最高的核心,N为大于0的偶数。回收模块72,用于在电子设备中的剩余内存小于第一预设阈值的情况下,通过N个回收线程回收目标页;并在通过N个回收线程回收目标页的过程中、且电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收目标页。
在一种可能的实现方式中,上述第一页面包括:文件页和匿名页;上述回收模块72,具体用于通过N个回收线程中的M个回收线程回收文件页,并通过N个回收线程中除M个回收线程以外的其他L个回收线程回收匿名页,M和L为小于N的偶数。
在一种可能的实现方式中,上述回收模块72,具体用于在电子设备中的CPU的负载大于或等于预定负载的情况下,通过M个回收线程优先回收文件页;或在电子设备中的CPU的负载小于预定负载的情况下,通过L个回收线程优先回收匿名页。
在一种可能的实现方式中,上述回收模块72,具体用于根据目标页的文件压缩速度和文件随机读写速度,确定目标值,该目标值用于指示N个回收线程回收目标页的数量;并在目标值与历史值之间的变化量大于或等于第三预设阈值的情况下,根据目标值确定N个回收线程回收目标页的数量,历史值为历史回收目标页时所确定的目标值。
在一种可能的实现方式中,上述处理模块71,具体用于基于电子设备中的X个目标应用程序在至少两个连续的预定时长内的内存回收量,确定回收线程的数量,X为大于1的整数。
本申请实施例提供一种内存回收装置,由于内存回收装置可以通过N个回收线程共同回收目标页,可以提高内存释放的速度,从而提升了内存回收装置申请内存的速度,进而避免了因内存申请的速度慢导致的内存回收装置运行卡顿的问题,而且,通过将N个回收线程与CPU中除目标核心之外的核心绑定,避免了回收线程与UI线程抢占超大核(即CPU的目标核心)的内存资源导致内存回收装置运行卡顿的问题,如此,在提高了内存回收装置内存回收效率的同时,也提升了内存回收装置运行的流畅度。
本申请实施例中的内存回收装置可以是装置,也可以是电子设备中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(MobileInternet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的内存回收装置可以为具有操作***的装置。该操作***可以为安卓(Android)操作***,可以为iOS操作***,还可以为其他可能的操作***,本申请实施例不作具体限定。
本申请实施例提供的内存回收装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图3所示,本申请实施例还提供一种电子设备90,包括处理器91和存储器92,存储器92上存储有可在所述处理器91上运行的程序或指令,该程序或指令被处理器91执行时实现上述内存回收方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图4为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备100包括但不限于:射频单元101、网络模块102、音频输出单元103、输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、以及处理器110等部件。
本领域技术人员可以理解,电子设备100还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理***与处理器110逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器110,用于确定N个回收线程,并将N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,目标核心为CPU中运行频率最高的核心,N为大于0的偶数;并在电子设备中的剩余内存小于第一预设阈值的情况下,通过N个回收线程回收目标页;以及在通过N个回收线程回收目标页的过程中、且电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收目标页。
本申请实施例提供一种电子设备,由于电子设备可以通过N个回收线程共同回收目标页,可以提高内存释放的速度,从而提升了电子设备申请内存的速度,进而避免了因内存申请的速度慢导致的电子设备运行卡顿的问题,而且,通过将N个回收线程与CPU中除目标核心之外的核心绑定,避免了回收线程与UI线程抢占超大核(即CPU的目标核心)的内存资源导致电子设备运行卡顿的问题,如此,在提高了电子设备内存回收效率的同时,也提升了电子设备运行的流畅度。
可选地,本申请实施例中,上述目标页包括:文件页和匿名页;上述处理器110,具体用于通过N个回收线程中的M个回收线程回收文件页,并通过N个回收线程中除M个回收线程以外的其他L个回收线程回收匿名页,M和L为小于N的偶数。
可选地,本申请实施例中,上述处理器110,具体用于在电子设备中的CPU的负载大于或等于预定负载的情况下,通过M个回收线程优先回收文件页;或在电子设备中的CPU的负载小于预定负载的情况下,通过L个回收线程优先回收匿名页。
可选地,本申请实施例中,上述处理器110,具体用于根据目标页的文件压缩速度和文件随机读写速度,确定目标值,该目标值用于指示N个回收线程回收目标页的数量;并在目标值与历史值之间的变化量大于或等于第三预设阈值的情况下,根据目标值确定N个回收线程当前回收目标页的数量,历史值为历史回收目标页时所确定的目标值。
可选地,本申请实施例中,上述处理器110,具体用于在基于电子设备中的X个目标应用程序在至少两个连续的预定时长内的内存回收量,确定回收线程的数量,X为大于1的整数。
本申请实施例提供的电子设备能够实现上述方法实施例实现的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本实施例中各种实现方式具有的有益效果具体可以参见上述方法实施例中相应实现方式所具有的有益效果,为避免重复,此处不再赘述。
应理解的是,本申请实施例中,输入单元104可以包括图形处理器(GraphicsProcessing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元106可包括显示面板1061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板1061。用户输入单元107包括触控面板1071以及其他输入设备1072中的至少一种。触控面板1071,也称为触摸屏。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作***、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器109可以包括易失性存储器或非易失性存储器,或者,存储器109可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器109包括但不限于这些和任意其它适合类型的存储器。
处理器110可包括一个或多个处理单元;可选的,处理器110集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作***、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为***级芯片、***芯片、芯片***或片上***芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述内存回收方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种内存回收方法,其特征在于,所述方法包括:
确定N个回收线程,并将所述N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,所述目标核心为所述CPU中运行频率最高的核心,N为大于0的偶数;
在所述电子设备中的剩余内存小于第一预设阈值的情况下,通过所述N个回收线程回收目标页;
在通过所述N个回收线程回收目标页的过程中、且所述电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收所述目标页。
2.根据权利要求1所述的方法,其特征在于,所述目标页包括:文件页和匿名页;所述通过N个回收线程回收目标页,包括:
通过所述N个回收线程中的M个回收线程回收所述文件页,并通过所述N个回收线程中除所述M个回收线程以外的其他L个回收线程回收所述匿名页,M和L为小于N的偶数。
3.根据权利要求2所述的方法,其特征在于,所述通过所述N个回收线程中的M个回收线程回收文件页面,包括:
在所述电子设备中的CPU的负载大于或等于预定负载的情况下,通过所述M个回收线程优先回收所述文件页;
所述通过所述N个回收线程中除所述M个回收线程以外的其他L个回收线程回收所述匿名页,包括:
在所述电子设备中的CPU的负载小于所述预定负载的情况下,通过所述L个回收线程优先回收所述匿名页面。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述通过N个回收线程回收目标页,包括:
根据所述目标页的文件压缩速度和文件随机读写速度,确定目标值,所述目标值用于指示所述N个回收线程回收所述目标页的数量;
在所述目标值与历史值之间的变化量大于或等于第三预设阈值的情况下,根据所述目标值确定所述N个回收线程当前回收所述目标页的数量,所述历史值为历史回收所述目标页时所确定的目标值。
5.根据权利要求1所述的方法,其特征在于,所述获取N个回收线程,包括:
基于所述电子设备中的X个目标应用程序在至少两个连续的预定时长内的内存回收量,确定回收线程的数量,X为大于1的整数。
6.一种内存回收装置,其特征在于,所述内存回收装置包括:处理模块和回收模块;所述处理模块,用于确定N个回收线程,并将所述N个回收线程与电子设备的CPU中的除目标核心之外的核心绑定,所述目标核心为所述CPU中运行频率最高的核心,N为大于0的偶数;
所述回收模块,用于在所述电子设备中的剩余内存小于第一预设阈值的情况下,通过所述N个回收线程回收目标页;并在通过所述N个回收线程回收目标页的过程中、且所述电子设备的剩余内存大于或等于第二预设阈值的情况下,停止回收所述目标页。
7.根据权利要求6所述的装置,其特征在于,所述第一页面包括:文件页和匿名页;所述回收模块,具体用于通过所述N个回收线程中的M个回收线程回收文件,并通过所述N个回收线程中除所述M个回收线程以外的其他L个回收线程回收所述匿名页,M和L为小于N的偶数。
8.根据权利要求7所述的装置,其特征在于,所述回收模块,具体用于在所述电子设备中的CPU的负载大于或等于预定负载的情况下,通过所述M个回收线程优先回收所述文件页;或在所述电子设备中的CPU的负载小于所述预定负载的情况下,通过所述L个回收线程优先回收所述匿名页。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述回收模块,具体用于根据所述目标页的文件压缩速度和文件随机读写速度,确定目标值,所述目标值用于指示所述N个回收线程回收所述目标页的数量;并在所述目标值与历史值之间的变化量大于或等于第三预设阈值的情况下,根据所述目标值确定所述N个回收线程当前回收所述目标页的数量,所述历史值为历史回收所述目标页时所确定的目标值。
10.根据权利要求6所述的装置,其特征在于,所述处理模块,具体用于基于所述电子设备中的X个目标应用程序在至少两个连续的预定时长内的内存回收量,确定回收线程的数量,X为大于1的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211348720.8A CN115509953A (zh) | 2022-10-31 | 2022-10-31 | 内存回收方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211348720.8A CN115509953A (zh) | 2022-10-31 | 2022-10-31 | 内存回收方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509953A true CN115509953A (zh) | 2022-12-23 |
Family
ID=84511458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211348720.8A Pending CN115509953A (zh) | 2022-10-31 | 2022-10-31 | 内存回收方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509953A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858046A (zh) * | 2023-02-28 | 2023-03-28 | 荣耀终端有限公司 | 一种预加载内存页的方法、电子设备及芯片*** |
CN116089032A (zh) * | 2022-12-26 | 2023-05-09 | 中用科技有限公司 | 通过自适应配置的快速移动应用程序切换方法及存储介质 |
-
2022
- 2022-10-31 CN CN202211348720.8A patent/CN115509953A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089032A (zh) * | 2022-12-26 | 2023-05-09 | 中用科技有限公司 | 通过自适应配置的快速移动应用程序切换方法及存储介质 |
CN116089032B (zh) * | 2022-12-26 | 2023-09-05 | 中用科技有限公司 | 通过自适应配置的快速移动应用程序切换方法及存储介质 |
CN115858046A (zh) * | 2023-02-28 | 2023-03-28 | 荣耀终端有限公司 | 一种预加载内存页的方法、电子设备及芯片*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158910B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN110888746B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN115509953A (zh) | 内存回收方法及其装置 | |
CN110895492B (zh) | 设备控制方法、装置、存储介质及电子设备 | |
US11360884B2 (en) | Reserved memory in memory management system | |
CN111090521A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN112711387B (zh) | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 | |
CN109683983B (zh) | 一种镜像文件的生成及加载方法、设备 | |
CN114996173B (zh) | 一种管理存储设备写操作的方法和装置 | |
CN115357389A (zh) | 内存管理方法、装置及电子设备 | |
CN115509951A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN102934086A (zh) | 多核处理器***、电力控制方法及电力控制程序 | |
WO2021047398A1 (zh) | 存储块回收方法、装置、存储介质及电子设备 | |
WO2023236930A1 (zh) | 基于ion分配器的内存分配方法、装置、电子设备和可读存储介质 | |
CN117170872A (zh) | 内存管理方法、装置、设备和存储介质 | |
CN113032290B (zh) | 闪存配置方法、装置、电子设备和存储介质 | |
CN115328656A (zh) | 动态内存智能化扩展方法、装置、设备及存储介质 | |
CN112965920A (zh) | 内存管理方法、装置、电子设备以及存储介质 | |
CN113687942A (zh) | 检测方法、装置及电子设备 | |
CN112463374A (zh) | 一种内存管理方法、装置、设备及存储介质 | |
CN116756056A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN115934276A (zh) | 内存管理方法、装置及电子设备 | |
CN116955215A (zh) | 垃圾回收处理方法、装置及电子设备 | |
CN117311967A (zh) | 内存处理方法、装置及电子设备 | |
CN116302541A (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 |