CN115454884A - 页面回收方法、装置、电子设备以及存储介质 - Google Patents

页面回收方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN115454884A
CN115454884A CN202211097731.3A CN202211097731A CN115454884A CN 115454884 A CN115454884 A CN 115454884A CN 202211097731 A CN202211097731 A CN 202211097731A CN 115454884 A CN115454884 A CN 115454884A
Authority
CN
China
Prior art keywords
page
linked list
threshold value
pages
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
Application number
CN202211097731.3A
Other languages
English (en)
Inventor
李培锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202211097731.3A priority Critical patent/CN115454884A/zh
Publication of CN115454884A publication Critical patent/CN115454884A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例公开了一种页面回收方法、装置、电子设备以及存储介质。所述方法包括:在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。通过该方法实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。

Description

页面回收方法、装置、电子设备以及存储介质
技术领域
本申请涉及数据处理技术领域,更具体地,涉及一种页面回收方法、装置、电子设备以及存储介质。
背景技术
Li nux每次回收页面的时候,通常秉持LRU(Least Recent l y Used,最近最少使用)算法,优先回收最近最不常使用的页面,这个过程涉及到反向映射,反向映射的目的是为了找到所有映射到某一个页面的页表项,从而可以对目标页做一些操作,比如切断映射。
然而,如果一个页面被几百个进程共享,如果回收这个页面,反向映射这个页面就必须遍历几百次页表,如果这样的页面多了,反向映射的负载则会非常高;并且,在内存紧张的时候,反复的对这种页面进行反向映射,可能会不断恶化系统的CPU负载,致使CPU资源被严重消耗,导致其他线程因为得不到CPU资源导致卡顿。
发明内容
鉴于上述问题,本申请提出了一种页面回收方法、装置、电子设备以及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种页面回收方法,应用于电子设备,所述方法包括:在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。
第二方面,本申请实施例提供了一种页面回收装置,运行于电子设备,所述装置包括:访问数量获取模块,用于在页面处于共享状态下,获取所述页面的访问数量;页面回收模块,用于若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。
第三方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述第一方面的方法。
本申请提供的一种页面回收方法、装置、电子设备以及存储介质,通过在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。从而通过上述方式实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提出的一种页面回收方法的方法流程图。
图2示出了本申请另一实施例提出的一种页面回收方法的方法流程图。
图3示出了本申请又一实施例提出的一种页面回收方法的方法流程图。
图4示出了本申请再一实施例提出的一种页面回收方法的方法流程图。
图5示出了本申请实施例提供的内存回收流程的过程示意图。
图6示出了本申请实施例提出的一种页面回收装置的结构框图。
图7示出了本申请的用于执行根据本申请实施例的一种页面回收方法的电子设备的结构框图。
图8是本申请实施例的用于保存或者携带实现根据本申请实施例的一种页面回收方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着移动终端技术的迅速发展,消费者对于移动终端的需求不再仅仅局限于实现简单的功能,而是流畅的使用多种功能才能满足消费者的需求。移动终端的流畅性已经是用户消费购买考虑的一个必要的因素。而内存性能在其中的重要性更为突出,因为目前的移动终端,应用的内存需求日益增大,例如大型的手游等一个应用就可能占据了2G bytes的内存空间,而如何更好的管理好内存的性能,最关键的就是内存回收的技术。
L i nux系统的内存回收类型大致分为如下类型:
查杀后台应用:把应用查杀掉,应用使用的内存在进程销毁的过程中会被回收,从而达到内存回收的目的。
回收页面:对于移动终端来说,用户对于后台缓存应用的个数是有要求的,内存回收的第一选择一般不会是通过查杀应用来完成,而是通过回收页面,例如应用使用的页面,可以在某些阶段进行回收。
其中,页面回收的方式可以包括:
对于应用读取的文件页面,例如一些加载的图片,可能读取后长时间不用,那么就可以先回收,等下次应用再次使用到的时候在从磁盘里面读回来,这样可以缓解某段时间的内存紧张;
对于应用使用的匿名页面,例如应用的一些数据,这些页面就不能随意丢弃了,因为丢弃后会导致用户使用过程中数据错乱,这个时候可以选择将页面进行压缩,例如本来用户使用了12kbytes的内存用于存储用户数据,可以通过压缩算法,将页面压缩成4kbytes,这样就节省了8kbytes的内存,等到用户再次使用的时候,再将页面解压出来给用户即可。
然而,对于被多用户共享的页面,一个页面被多个进程使用,如果要回收该种页面,可能需要多次遍历页表,致使反向映射的负载很高,CPU资源被严重消耗,导致其他线程因为得不到CPU资源而卡顿,以及内存回收不及时。
下面将结合附图具体描述本申请的各实施例。
请参阅图1,本申请一实施例提供一种页面回收方法,可应用于电子设备,所述方法包括:
步骤S110:在页面处于共享状态下,获取所述页面的访问数量。
其中,页面处于共享状态可以理解为页面被多用户访问(包括页面正在被多用户访问或者是页面已经被多用户访问过)的状态,可以将该类页面称之为共享页面。可选的,多用户的具体数值可以不作限定,例如可以是5个用户、10个用户、100个用户等数值。
在页面回收过程中,为了避免重复对一个共享页面进行反向映射(即重复遍历一个共享页面中的页表)而过多的消耗CPU负载,可以在页面回收之前将多用户共享的页面进行保护,作为一种方式,可以在判定页面处于共享状态下,获取页面的访问数量,继而根据页面的访问数量多用户共享的页面进行保护,以减少共享页面进入内存回收流程,从而大幅度减少重复对共享页面进行反向映射带来的负载消耗。
作为一种方式,可以在页面设定访问用户累加事件,当有用户访问页面时,可以触发该事件自动累加访问页面的用户数,从而可以通过获取累加事件的值的方式判定页面是否处于共享状态以及获取页面的访问数量。例如,如果设定当一个页面的访问用户数大于10人时,判定该页面处于共享状态,那么若通过累加事件获取的值为15,那么可以判定该页面处于共享状态,且获取得到页面的访问数量为15。
步骤S120:若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。
本实施方式中,第一阈值表征将多用户共享的页面进行保护的临界访问数量,第一阈值的具体数值可以不作限定,例如,第一阈值可以为20、50、100等数值。
作为一种方式,若访问数量大于第一阈值,可以将页面迁移到原生内核之外的存储空间,以对该页面进行保护。需要说明的是,当该页面被迁移到原生内核之外的存储空间后,在内存回收的过程中,无法直接对该页面进行反向映射(即页面回收),从而可以保护更高概率会被访问的页面不被回收。同时,由于系统无法直接回收该类被保护的页面,因而可以降低页面回收过程中对该类页面的反复反向映射带来的CPU负载消耗,进而提高内存回收速度。
本申请提供的一种页面回收方法,通过在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。从而通过上述方式实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。同时,可以提高内存回收的速度。
请参阅图2,本申请另一实施例提供一种页面回收方法,可应用于电子设备,所述方法包括:
步骤S210:构建链表,所述链表存储于软件驱动。
可选的,该链表可以为双向链表。链表的尾部可以用于存放最近最不常被访问的页面,链表的头部可以用于存放最近常被访问的页面。
作为一种方式,可以在系统内核启动的时候,构建一个新的链表,用于存放被保护的共享页面,该链表存储于软件驱动。
步骤S220:在页面处于共享状态下,获取所述页面的访问数量。
步骤S230:若所述访问数量大于第一阈值,将所述页面迁移至所述链表。
当共享页面的访问数量大于第一阈值的情况下,可以将共享页面迁移至上述新构建的链表,由于该链表存放于与原生内核不同的存储空间,因而在页面回收的过程中无法直接回收该链表中的页面,从而实现对迁移至链表中的页面进行保护。
在一个具体的实施方式中,可以在系统内核启动的时候,构建一个新的链表,命名为mapped_lru(具体命名方式不作限定,此处仅作为示例),并且在页面被用户共享的时候进行实时监督,如果发现页面的用户使用数(可以理解为页面的访问数量)超过(即大于)第一阈值,则将页面迁移到mapped_lru中。
可选的,链表可以包括多个页面,每一个页面均为被多用户共享的页面。本实施方式中,虽然将页面迁移至链表可以实现对该页面进行保护,但是,如果系统的剩余内存较小时可能会导致系统无法正常运行,为了避免这类问题的发生,可以在上述实施方式的前提下,获取系统的可用内存。其中,若可用内存小于第二阈值(第二阈值表征系统可以正常运行的临界值,当可用内存大于第二阈值时,系统可以正常运行,当可用内存小于第二阈值时,系统无法正常运行),表示系统的内存较紧张,可以将位于链表尾部的页面移除,即将位于链表尾部的页面放回系统中,以让系统回收该页面。通过在系统的可用内存小于第二阈值的情况下,将位于链表尾部的页面移除,可以让系统能及时回收到内存,避免系统因为内存回收不及时造成卡顿。
可选的,若系统的可用内存不小于(大于或者等于)第二阈值,表示系统的可用内存不是极度紧张,此时可以获取链表中的页面数量。为了避免同一个链表中页面数量过多而使得系统无法及时回收到足够数量的页面,作为一种方式,若链表中的页面数量大于第三阈值,则可以将位于链表尾部的页面移除,直至链表中的页面数量小于第三阈值,即将位于链表尾部的页面放回系统中,以让该页面可以被回收,第三阈值可以为80、100、120等数值,具体数值可以不作限定。
作为另一种方式,若页面数量不大于第三阈值,则可以结束该页面回收流程。
本申请提供的一种页面回收方法,通过构建链表,所述链表存储于软件驱动;在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移至所述链表。从而通过上述方式实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。通过系统的可用内存的大小以及链表中的页面数量的多少,对链表中的页面进行移除操作,可以让系统能及时回收到内存,避免系统因为内存回收不及时造成卡顿。
请参阅图3,本申请又一实施例提供一种页面回收方法,可应用于电子设备,所述方法包括:
步骤S310:构建链表,所述链表存储于软件驱动。
步骤S320:在页面处于共享状态下,获取所述页面的访问数量。
步骤S330:若所述访问数量大于第一阈值,将所述页面迁移至所述链表。
步骤S340:当所述链表中的目标页面被访问时,将所述目标页面移动至所述链表的头部。
其中,目标页面可以为链表中的任意一个被用户访问的页面,目标页面可以理解为链表中当前正在被访问的页面。
对于链表中的多个页面,有的页面可能是用户经常访问的,有的页面则可能是用户很少访问的。为了便于更准确的进行页面回收,本实施方式中的链表中的页面也遵循LRU原则,在一种实现方式中,当链表中的目标页面被访问时,可以将该目标页面移动至链表的头部,即当页面被发现被访问的时候,及时将页面移动到链表的头部,那么链表尾部的页面就是用户共享页面中最近最不常被使用的页面了,从而可以实现保护更高概率会被访问的页面不被回收,降低页面被回收后重新读入的颠簸概率。
本申请提供的一种页面回收方法,通过构建链表,所述链表存储于软件驱动;在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移至所述链表;当所述链表中的目标页面被访问时,将所述目标页面移动至所述链表的头部。从而通过上述方式实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。同时,通过当页面被发现被访问的时候,及时将页面移动到链表的头部,可以实现保护更高概率会被访问的页面不被回收。
请参阅图4,本申请再一实施例提供一种页面回收方法,可应用于电子设备,所述方法包括:
步骤S410:获取内存回收过程中的可回收页面的数量。
本实施方式中,在内存回收过程中,会先对原生内核中的可回收页面进行回收,在原生内核中的可回收页面数量不足的情况下,才会尝试对保护起来的共享页面进行回收。因而作为一种方式,可以获取内存回收过程中的可回收页面的数量,继而根据该数量确定是否要对保护起来的共享页面进行回收。
系统(例如Linux系统)每次回收页面的时候,会秉持LRU算法,优先回收最近最不常使用的页面。其中,如果页面最近被使用过,页面对应的页表会被置位(当用户访问某个页面的时候,硬件会自动将页面的页表的某个标志置位,从而告诉系统这个页面被访问过了),因而作为一种方式,可以通过判断页面对应的页表是否被置位来判断该页面是否是最近最不常使用的页面,进而获取内存回收过程中的可回收页面的数量。
可选的,如果页面对应的页表被置位,则可以判定该页面不是最近最不常使用的页面;而如果页面对应的页表没有被置位,则可以判定该页面是最近最不常使用的页面,即该页面是可回收页面。
步骤S421:若所述数量低于预设阈值,执行所述在页面处于共享状态下,获取所述页面的访问数量的步骤。
其中,预设阈值可以表征系统可回收页面的数量是否足够的临界值。可选的,若系统可回收页面的数量高于预设阈值,表示系统可回收页面的数量足够;若系统可回收页面的数量低于预设阈值,表示系统可回收页面的数量不足。
作为一种方式,若系统可回收页面的数量低于预设阈值,会尝试对保护起来的共享页面进行回收,可以执行前述实施例所描述的在页面处于共享状态下,获取所述页面的访问数量的步骤,具体实施过程可以参考前述实施例的描述,在此不再赘述。
步骤S422:若所述数量不低于预设阈值,对所述可回收页面进行回收。
作为另一种方式,若系统可回收页面的数量高于预设阈值,则可以直接对系统中的可回收页面进行回收。
在一个具体的应用场景中,请参阅图5,示出了本申请实施例提供的内存回收流程的过程示意图。如图5所示,在内存回收过程中,可以先获取内存回收过程中的可回收页面的数量,如果该页面足够,可以直接进行内存回收,进而结束内存回收流程。如果该页面不足够,则可以尝试对保护页面进行回收,具体的,先判断系统可用内存是否低于可用内存阈值,如果可用内存低于可用内存阈值,表示内存紧张,可以将所保护的页面放回系统,以让系统可以及时回收页面,腾出可用的内存空间,如果可用内存是否不低于可用内存阈值,表示内存充足,可以继续判断链表中的页面数量是否大于页面数量阈值,可选的,如果判定链表中的页面数量大于页面数量阈值,为了避免无法及时回收页面带来的CPU负载消耗,可以将所保护的页面放回系统,以让系统可以及时回收页面;如果判定链表中的页面数量不大于页面数量阈值,则表示保护页面尚不满足内存回收条件,可以结束对保护页面进行回收的流程。
本申请提供的一种页面回收方法,通过获取内存回收过程中的可回收页面的数量;若所述数量低于预设阈值,执行所述在页面处于共享状态下,获取所述页面的访问数量的步骤;若所述数量不低于预设阈值,对所述可回收页面进行回收。从而通过上述方式实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。通过获取原生内核中的可回收页面数量,进而判断是否对保护起来的共享页面进行回收,提升了内存回收的准确性。
请参阅图6,本申请实施例提供了一种页面回收装置500,运行于电子设备,所述装置500包括:
访问数量获取模块510,用于在页面处于共享状态下,获取所述页面的访问数量。
页面回收模块520,用于若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。
可选的,装置500还可以包括链表构建模块,用于在页面处于共享状态下,获取所述页面的访问数量之前,构建链表,所述链表存储于软件驱动。在这种方式下,页面回收模块520可以用于若所述访问数量大于第一阈值,将所述页面迁移至所述链表。
其中,所述链表可以包括多个页面。可选的,装置500还可以包括页面调整模块,该页面调整模块可以用于获取系统的可用内存;若所述可用内存小于第二阈值,将位于所述链表尾部的页面移除。该页面调整模块还可以用于若所述可用内存不小于第二阈值,获取所述链表中的页面数量;若所述页面数量大于第三阈值,将位于所述链表尾部的页面移除。若所述页面数量不大于第三阈值,结束流程。
可选的,该页面调整模块可以用于当所述链表中的目标页面被访问时,将所述目标页面移动至所述链表的头部。
可选的,装置500还可以包括可回收页面数量获取模块,用于在页面处于共享状态下,获取所述页面的访问数量之前,获取内存回收过程中的可回收页面的数量。在这种方式下,页面回收模块520可以用于若所述数量不低于预设阈值,对所述可回收页面进行回收;若所述数量低于预设阈值,执行所述在页面处于共享状态下,获取所述页面的访问数量的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图7,基于上述的页面回收方法及装置,本申请实施例还提供了一种可以执行前述页面回收方法的电子设备100。电子设备100包括存储器102以及相互耦合的一个或多个(图中仅示出一个)处理器104,存储器102以及处理器104之间通信线路连接。存储器102中存储有可以执行前述实施例中内容的程序,而处理器104可以执行存储器102中存储的程序。
其中,处理器104可以包括一个或者多个处理核。处理器104利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器104可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器104可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器104中,单独通过一块通信芯片进行实现。
存储器102可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现前述各个实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质600中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质600可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质600包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质600具有执行上述方法中的任何方法步骤的程序代码610的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码610可以例如以适当形式进行压缩。
综上所述,本申请提供的一种页面回收方法、装置、电子设备以及存储介质,通过在页面处于共享状态下,获取所述页面的访问数量;若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。从而通过上述方式实现了可以在共享的页面的用户数量大于第一阈值时,通过将页面迁移到原生内核之外的存储空间,对共享的页面进行迁移保护,可以避免反复的对这种共享页面进行反向映射而恶化系统的CPU负载,即减少了页面回收过程中的总体CPU负载。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种页面回收方法,其特征在于,应用于电子设备,所述方法包括:
在页面处于共享状态下,获取所述页面的访问数量;
若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述在页面处于共享状态下,获取所述页面的访问数量之前,还包括:
构建链表,所述链表存储于软件驱动;
所述若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间,包括:
若所述访问数量大于第一阈值,将所述页面迁移至所述链表。
3.根据权利要求2所述的方法,其特征在于,所述链表包括多个页面,所述方法还包括:
获取系统的可用内存;
若所述可用内存小于第二阈值,将位于所述链表尾部的页面移除。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述可用内存不小于第二阈值,获取所述链表中的页面数量;
若所述页面数量大于第三阈值,将位于所述链表尾部的页面移除。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述页面数量不大于第三阈值,结束流程。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述链表中的目标页面被访问时,将所述目标页面移动至所述链表的头部。
7.根据权利要求1所述的方法,其特征在于,所述在页面处于共享状态下,获取所述页面的访问数量之前,还包括:
获取内存回收过程中的可回收页面的数量;
若所述数量不低于预设阈值,对所述可回收页面进行回收;
若所述数量低于预设阈值,执行所述在页面处于共享状态下,获取所述页面的访问数量的步骤。
8.一种页面回收装置,其特征在于,运行于电子设备,所述装置包括:
访问数量获取模块,用于在页面处于共享状态下,获取所述页面的访问数量;
页面回收模块,用于若所述访问数量大于第一阈值,将所述页面迁移到原生内核之外的存储空间。
9.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-7任一所述的方法。
CN202211097731.3A 2022-09-08 2022-09-08 页面回收方法、装置、电子设备以及存储介质 Pending CN115454884A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211097731.3A CN115454884A (zh) 2022-09-08 2022-09-08 页面回收方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211097731.3A CN115454884A (zh) 2022-09-08 2022-09-08 页面回收方法、装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN115454884A true CN115454884A (zh) 2022-12-09

Family

ID=84303873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211097731.3A Pending CN115454884A (zh) 2022-09-08 2022-09-08 页面回收方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN115454884A (zh)

Similar Documents

Publication Publication Date Title
US11531625B2 (en) Memory management method and apparatus
KR102419745B1 (ko) 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기
CN110764906B (zh) 内存回收处理方法、装置、电子设备以及存储介质
CN111352861B (zh) 内存压缩方法、装置及电子设备
US20170286153A1 (en) Managing Container Pause And Resume
CN110865888A (zh) 一种资源加载方法、装置、服务器及存储介质
US20220035655A1 (en) Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium
CN108108089B (zh) 一种图片加载方法及装置
US8499138B2 (en) Demand-based memory management of non-pagable data storage
CN114185494B (zh) 内存匿名页的处理方法、电子设备及可读存储介质
CN114207571B (zh) 计算装置及其操作方法
CN114168490A (zh) 确定内存回收阈值的方法及相关设备
CN110727607A (zh) 内存回收方法、装置以及电子设备
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN115509953A (zh) 内存回收方法及其装置
CN117170872A (zh) 内存管理方法、装置、设备和存储介质
CN115454884A (zh) 页面回收方法、装置、电子设备以及存储介质
CN115587049A (zh) 内存回收方法、装置、电子设备及存储介质
CN110618946A (zh) 堆栈内存分配方法、装置、设备和存储介质
CN115981565A (zh) 存储器、数据存储方法及电子设备
CN115495020A (zh) 文件处理方法、装置、电子设备和可读存储介质
CN111562983B (zh) 内存优化方法、装置、电子设备及存储介质
CN113934692A (zh) 文件清理方法、装置、存储介质及设备
CN112035253A (zh) 一种linux系统页缓存回收方法及相关装置
CN111625500A (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