CN116954924A - 内存管理方法、装置及电子设备 - Google Patents
内存管理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116954924A CN116954924A CN202311008532.5A CN202311008532A CN116954924A CN 116954924 A CN116954924 A CN 116954924A CN 202311008532 A CN202311008532 A CN 202311008532A CN 116954924 A CN116954924 A CN 116954924A
- Authority
- CN
- China
- Prior art keywords
- memory
- continuous
- continuous memory
- size
- condition
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 638
- 238000007726 management method Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 claims abstract description 481
- 230000008569 process Effects 0.000 claims abstract description 454
- 238000011084 recovery Methods 0.000 claims abstract description 32
- 230000007246 mechanism Effects 0.000 claims description 45
- 238000004064 recycling Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 150000003071 polychlorinated biphenyls Chemical class 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000004083 survival 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种内存管理方法、装置及电子设备,属于软件技术领域。在满足第一进程的内存回收条件的情况下,根据第一进程关联的第一地址信息,确定第一进程独占的第一连续内存,第一地址信息包括第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;回收第一连续内存。
Description
技术领域
本申请属于软件技术领域,具体涉及一种内存管理方法、装置及电子设备。
背景技术
随着软件技术的不断发展,软件应用对内存的需求也越来越大。由于电子设备的系统内存有限,因此随着应用占用的内存的上升,可能会导致电子设备的系统内存不足,从而导致电子设备的运行性能变差。
为了避免电子设备的内存不足,可以通过查杀应用的进程的方式回收内存。
然而,由于相关技术中的内存管理方式是采用横向分层式设计,且层级之间相互独立的进程管理结构,从而进程的不同进程信息零散分布在系统内存的双倍速率同步动态随机存储器(Double Data Rate,DDR)中,因此当查杀进程时,需要在DDR执行多次进程信息查找和查杀操作才能完成对一个进程的查杀,从而导致查杀进程的耗时较长。
发明内容
本申请实施例的目的是提供一种内存管理方法、装置及电子设备,能够解决查杀进程的耗时较长的问题。
第一方面,本申请实施例提供了一种内存管理方法,该方法包括:在满足第一进程的内存回收条件的情况下,根据第一进程关联的第一地址信息,确定第一进程独占的第一连续内存,第一地址信息包括第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;回收第一连续内存。
第二方面,本申请实施例提供了一种内存管理装置,该内存管理装置包括:确定模块和回收模块。确定模块,用于在满足第一进程的内存回收条件的情况下,根据第一进程关联的第一地址信息,确定第一进程独占的第一连续内存,第一地址信息包括第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;回收模块,用于回收确定模块确定的第一连续内存。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,可以在满足第一进程的内存回收条件的情况下,根据第一进程关联的第一地址信息,确定第一进程独占的第一连续内存,第一连续内存包括地址相连续的至少一个内存单元,第一地址信息包括第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;回收第一连续内存。通过该方案,由于第一进程可以独占系统内存中的一个连续内存,因此可以根据第一进程关联的第一地址信息,快速查找到第一进程的全部进程信息,且仅执行一次内存回收操作即可完成对第一进程独占的内存的回收。如此相比于相关技术中需要在系统内存中进行多次查找和查杀才能回收一个进程占用的全部内存的方案,本申请实施例提供的内存管理方法可以快速回收进程占用的内存,缩短回收进程占用内存的时长,提高了内存回收效率。
进一步地,由于无需多次查找进程的进程信息,因此可以降低因查找待查杀进程的进程信息所抢占的中央处理器(Central Processing Unit,CPU)资源,从而可以避免电子设备的运行性能在查杀进程的过程中进一步变差。
附图说明
图1是相关技术中的内存管理示意图;
图2是本申请实施例提供的内存管理方法的流程示意图之一;
图3是本申请实施例提供的内存管理方法的流程示意图之二;
图4是本申请实施例提供的内存管理方法中的内存中分布的概念图;
图5是本申请实施例提供的内存管理方法应用的系统内存示意图;
图6是本申请实施例提供的内存管理方法中的系统管理示意图;
图7是本申请实施例提供的内存管理装置的结构示意图;
图8是本申请实施例提供的电子设备的结构示意图;
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请的说明书和权利要求书中的术语“至少一个(项)”、“至少之一”等指其包含对象中的任意一个、任意两个或两个以上的组合。例如,a、b、c中的至少一个(项),可以表示:“a”、“b”、“c”、“a和b”、“a和c”、“b和c”以及“a、b和c”,其中a,b,c可以是单个,也可以是多个。同理,“至少两个(项)”是指两个或两个以上,其表达的含义与“至少一个(项)”类似。
下面对本申请说明书和权利要求书中涉及的名词和术语进行解释。
内存:这里指运行内存,程序需要运行时从存储中加载到运行内存上才能被CPU快捷的调用;内存也称为系统内存。
快速回收:linux的一种内存回收的策略。
Slab:Linux操作系统的一种内存分配机制。
Slab:是基于对象进行管理的,相同类型的对象归为一类,每当要申请这样一个对象,slab分配器就从一个slab列表中分配一个这样大小的单元出去,而当要释放时,将其重新保包括slab列表中,而不是直接返回给伙伴(Buddy)系统,从而避免产生内部碎片。
进程:进程是资源分配的基本单位,它是应用程序执行时的一个实例。在设备中,所有应用程序(Application,APP)是由一个个进程来承载实现的。一个应用中包含了多个进程。
进程内容:也称为进程信息,进程内容是进程运行时的所有信息,包含程序段、数据段、进程控制块印制电路板(Printed Circuit Board,PCB)和内存占用信息等。
快照:在操作系统以及存储技术上实现的一种记录某一时间系统状态的技术。
例如,进程的快照用于指示进程在某一时刻的进程信息或进程内容。
DDR,即双倍速率同步动态随机存储器,是内存的其中一种。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的内存管理方法、装置及电子设备进行详细地说明。
本申请实施例提供的内存管理方法、装置及电子设备可以应用于对进程内存进行回收的场景中。
随着现在软件技术的不断发展,软件应用对内存大小条件也越来越大,内存作为硬件资源从在一定成本,不会随意的扩容。内存资源有限,而各种软件应用对内存的需求却越来越大,从而可能因内存不足或内存回收慢,给导致电子设备的运行性能越来越差,比如电子设备运行缓慢和卡顿等问题。
为了避免因系统内存不足而导致电子设备的运行性能下降,现有技术中的主要策略是通过杀进程回收内存,也就是降低了进程保活数量,但是这种策略并不能彻底解决系统内存不足的问题,因为系统回收内存也是需要时间成本和CPU资源,回收耗时长和对CPU资源的抢占同样会带来系统性能的下降。
具体的,由于相关技术中的内存管理方式是采用图1所示的横向分层式设计,且层级之间相互独立的进程管理结构,从而进程的不同进程信息零散分布在系统内存的DDR中,因此当查杀进程时,需要在DDR执行多次进程信息查找和查杀操作才能完成对一个进程的查杀。如此,进程信息的多次查找和查杀操作会导致进程回收的耗时较长,另一方面,查找和查杀进程信息均需要抢占CPU资源,从而导致电子设备在查杀进程的过程中的运行性能进一步劣化。
而在本申请提供的内存管理方法中,可以为各进程分配一个连续内存,从而当满足某个进程,如下述第一进程的内存回收条件时,可以根据该进程关联的地址信息,快速确定该进程独占的连续内存,从而通过对该连续内存的回收操作,一次性回收该进程占用的全部内存。如此可以提高回收进程占用的内存的耗时。如此,相比于相关技术中需要在系统内存中进行多次查找和查杀才能回收一个进程占用的全部内存的方案,本申请实施例提供的内存管理方法可以快速回收进程占用的内存,缩短回收进程占用内存的时长,提高了内存回收效率。并且,由于无需多次查找进程的进程信息,因此可以降低因查找待查杀进程的进程信息所抢占的CPU资源,从而可以避免电子设备的运行性能在查杀进程的过程中进一步变差。
可选地,各进程独自占一个连续内存,且该连续内存中配置独立的管理结构,如独立的Slab内存分配机制和独立的buddy内存分配机制。
可选地,本申请实施例提供的内存管理方法中,是一种独享式进程管理方式,不同进程独享一块大连续内存,并且有独立的管理结构,而总的内存管理机构只需要负责管理各个进程占用的大块切连续的内存,这样回收的性能就会很快。
本申请实施例提供的内存管理方法可以应用于支持linux系统的电子设备,如手机、电子手表或车载电子系统等。
本申请实施例提供的内存管理方法的执行主体可以为电子设备,包括移动电子设备或非移动电子设备,也可以为该电子设备中能够实现内存管理方法的功能模块或功能实体,具体的可以根据实际使用需求确定,本发明实施例不作限定。下面以电子设备执行该内存管理方法为例,对本申请实施例提供的内存管理方法进行示例性的说明。
图2示出了本申请实施例提供的一种内存管理方法的一种可能的方法流程示意图,如图2所示,本申请实施例提供的内存管理方法可以包括步骤201和步骤202。
步骤201、电子设备在满足第一进程的内存回收条件的情况下,根据第一进程关联的第一地址信息,确定第一进程独占的第一连续内存。
其中,第一地址信息包括第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息。
可选地,进程的内存回收条件为指示电子设备查杀进程的任意可能的条件。
示例性地,进程的内存回收条件可以包括但不限于以下任一项:
进程的优先级小于或等于优先级阈值,其中,该优先级阈值用于判断是否回收进程占用的内存;
电子设备接收到关闭进程的输入;
电子设备接收到关闭进程所属应用程序的输入;
进程是后台运行的进程。
可以理解,第一进程可以为电子设备的系统内存中运行的任一进程。
需要说明的是,第一进程独占第一连续内存可以理解为:第一连续内存供第一进程独占使用,第一连续内存是分配给第一进程使用的内存。
本申请实施例中,第一进程的所有进程信息均分布在第一连续内存中。如此可以便于电子设备回收第一进程占用的内存。
可选地,电子设备可以为不同进程分配不同连续内存,以便于隔离不同进程占用的内存,从而在回收进程占用的内存时,无需在系统内存中多次对同一进程的不同进程信息进行查找和查杀,从而可以提高回收进程占用内存的回收效率。
可选地,第一连续内存可以包括:系统内存中地址相连续的至少一个内存单元。其中,各内存单元的大小是一个字节占用的内存的大小。
可选地,电子设备可以在运行第一进程之后,存储第一进程占用的连续内存的地址信息,以得到第一地址信息,并将该第一地址信息与第一进程关联。
例如,电子设备可以将第一地址信息与第一进程的进程名称关联。当然,实际实现中,电子设备还可以将第一地址信息与第一进程的其他信息关联,以实现第一地址信息与第一进程的关联。
可选地,若在运行第一进程的过程中,第一进程占用的连续内存发生了变化,则电子设备可以更新第一进程关联的第一地址信息。
例如,随着第一进程启动的组件的数量的增加,第一进程所需的内存可能越来越大,则电子设备可以更新第一进程占用的连续内存的大小,并记录增大后的连续内存的地址信息。
步骤202、电子设备回收第一连续内存。
可以理解,电子设备回收第一连续内存可以为:电子设备释放第一连续内存中的所有数据,如第一进程的进程信息。
例如,电子设备可以查杀第一进程,以回收第一连续内存。
在本申请实施例提供的内存管理方法中,由于第一进程可以独占系统内存中的一个连续内存,因此可以根据第一进程关联的第一地址信息,快速查找到第一进程的全部进程信息,且仅执行一次内存回收操作即可完成对第一进程独占的内存的回收。如此相比于相关技术中需要在系统内存中进行多次查找和查杀才能回收一个进程占用的全部内存的方案,本申请实施例提供的内存管理方法可以快速回收进程占用的内存,缩短回收进程占用内存的时长,提高了内存回收效率。
进一步地,由于无需多次查找进程的进程信息,因此可以降低因查找待查杀进程的进程信息所抢占的CPU资源,从而可以避免电子设备的运行性能在查杀进程的过程中进一步变差。
可选地,结合上述图2,如图3所示,在上述步骤201之前,本申请实施例提供的内存管理方法还可以包括步骤203和步骤204,或包括步骤203和步骤205。
步骤203、电子设备在接收到第一进程的运行指令的情况下,判断系统内存中是否包括空闲且大小满足第一进程的内存大小条件的连续内存。
其中,第一连续内存中可以包括第二连续内存。
可选地,第一进程的运行指令可以包括但不限于以下任一项:
创建第一进程的指令;
切换第一进程的指令。
例如,电子设备接收到创建一个进程的指令之后,可以在系统内存中的一个连续且空闲的内存中创建并运行该进程。
可选地,切换进程的指令用于:将一个被挂起的进程恢复运行。其中,当一个进程被挂起之后,该进程不再占用CPU资源,同时该进程占用的内存也可以被回收,以供其他进程使用。需要说明的是,在回收该进程占用的内存之前,可以将该进程的进程信息回写至磁盘,以便于恢复该进程。
例如,可以将一个进程的快照信息回写至磁盘,从而当电子设备接收到该进程的切换指令时,电子设备可以根据该快照信息,在系统内存的一个连续且空闲的内存中快速回复运行该进程。
可选地,不同进程的内存大小条件可能不同。
可选地,空闲且大小满足第一进程的内存大小条件的连续内存是指:空闲的连续内存的大小大于或等于运行第一进程所需的最小内存大小。
例如,假设第一进程需求300M,那么:
1)若系统内存中的一个连续内存的大小为400M,且该连续内存是空闲的,即该连续内存处于空闲状态;那么电子设备可以确定系统内存中包括空闲且大小满足第一进程的内存大小条件的连续内存。
2)若系统内存中空闲的连续内存的大小均小于300M;那么,则电子设备可以确定系统内存中不包括空闲且大小满足第一进程的内存大小条件的连续内存。
可以理解,空闲的内存是指:不包括任何数据的内存。
可选地,若电子设备判断系统内存中包括空闲且大小满足第一进程的内存大小条件的至少一个连续内存,那么电子设备可以在该至少一个连续内存中的任一个连续内存中运行第一进程,即执行下述步骤204。若电子设备判断系统内存中不包括空闲且大小满足第一进程的内存大小条件的连续内存,那么电子设备可以先回收系统内存中的一些进程占用的内存,以得到空闲且满足第一进程的内存大小条件的一个连续内存;然后电子设备再在该连续内存中运行第一进程,即执行下述步骤205。
步骤204、电子设备在系统内存中包括空闲且大小满足第一进程的内存大小条件的至少一个连续内存情况下,在该至少一个连续内存中的第二连续内存中运行第一进程。
其中,第一连续内存中可以包括第二连续内存。
可选地,上述至少一个连续内存的大小均满足第一进程的内存大小条件。可以理解,第一进程的内存大小条件包括:运行第一进程时所需的最大内存大小。
例如,假设运行第一进程所需的最大进程大小为300M,那么第一进程的内存大小条件可以包括:内存大小大于或等于300M的连续内存。
可选地,第二连续内存可以为至少一个连续内存中的任一个内存。
例如,第二连续内存为至少一个连续内存中大小与第一进程需求的内存大小之差最小的连续内存。
可选地,电子设备在第二连续内存中运行第一进程之后,可以记录第二连续内存的地址信息,如第二连续内存的起始地址信息、结束地址信息和地址长度中的至少两项,并将该地址信息
步骤205、电子设备在系统内存中不包括空闲且大小满足第一进程的内存大小条件的连续内存的情况下,回收系统内存中大小满足第一进程的内存大小条件的第二连续内存,并在第二连续内存中运行第一进程。
其中,第一连续内存中包括第二连续内存。
可选地,电子设备回收系统内存中的第二连续内存包括:电子设备查杀第二连续内存中的进程、组件以及其他数据,以使第二连续空间空闲。
例如,假设第二连续内存包括地址连续的200个内存单元,分别为内存单元1至内存单元200,其中,内存单元1-5被组件1占用,内存单元11至16被组件2占用,那么电子设备可以销毁内存单元1-5以及11-16中的数据,以使第二连续内存称为空闲的内存。
如此,由于电子设备在运行一个进程之前,先判断系统内存中是否包括空闲且大小满足该进程的内存需求的连续内存,并在包括空闲且满足需求的连续内存时,直接在该连续内存中运行该进程;否则先进行内存回收,以腾出空闲且大小满足需求的连续内存,并在该连续内存中运行该进程。因此可以确保系统内存中的每个进程均独占一个连续内存,从而可以确保电子设备对系统内存中的进程占用的内存进行快速回收。
可选地,在上述步骤204或步骤205之前,本申请实施例提供的内存管理方法还可以包括下述的步骤206。
步骤206、电子设备在第二连续内存中设置内存分配机制。
其中,上述内存分配机制可以用于向第一进程的各进程信息分配第二连续内存中的双倍速率同步动态随机存储器DDR。
可以理解,上述内存分配机制是第一进程独享的内存分配机制。换句话说,上述内存分配机制用于控制第一进程的进程信息在第一进程占用的连续内存空间中的分布。
可选地,上述内存分配机制可以包括:Slab内存分配机制,伙伴内存分配机制。
对于Slab内存分配机制和伙伴内存分配机制的工作原理的描述参见现有技术中的相关描述。
可选地,进程独占的连续内存中的内存分配机制是系统内存的最小内存分配单元。
可选地,由于进程所需的内存大小有限,例如通常为200M,因此在进程独占的连续内存中设置单独的内存分配机制可以实现进程的进程信息的高效管理。
可选地,进程占用的内存为全连续内存,故而能做到低负载高效率快速回收进程的内存占用,并且确保系统内存长时间运行后,内存碎片化小程度较小。
如此,由于可以在进程独占的连续内存中设置单独的内存分配机制,因此可以通过该内存分配机制实现对各进程的进程信息的高效管理。
可选地,在上述步骤204或步骤205之后,本申请实施例提供的内存管理方法还可以包括下述的步骤207。
步骤207、电子设备在第二连续内存的大小不满足所述第一进程的内存大小条件的情况下,为第一进程分配第三连续内存。
其中,第三连续内存与第二连续内存相连续,第一连续内存还可以包括第三连续内存。
可选地,第二连续内存的大小不满足第一进程的内存大小条件,表示:第一进程实际所需的内存大小大于第二连续内存的大小。例如,随着第一进程加载的组件的数量的增加,第一进程所需的内存大小也越来越大,从而可能导致第二连续内存的大小不够用。
可选地,当进程独占的连续内存不够用时,电子设备可以从系统内存中为进程补充内存,且补充的内存与进程原本独占的内存相连续,如此可以确保扩充内存后,进程独占的仍然是一个连续内存。
可选地,电子设备为第一进程分配第三连续内存之后,第一连续内存的大小大于或等于第一进程需求的内存大小。
可选地,第三连续内存与第二连续内存相连续可以为:第三连续内存的地址信息第二连续内存的地址信息相连续。
例如,假设第二连续内存的起始地址信息和结束地址信息分别为:a和b,那么:第三连续内存的起始地址信息为(b+1),或者第三连续内存的结束地址信息为(a-1)。其中,该示例中的“1”是指系统内存中的最小地址单位。
可选地,假设系第三连续内存被占用或被占用一部分,则电子设备可以先回收第三连续内存,然后再将回收得到的第三连续内存分配给第一进程。
可选地,为了便于管理,电子设备可以在创建各进程时,为各进程分配相同大小的连续内存,例如200M。后续再根据各进程加载的组件的数量,适应性地扩充各进程独占的连续内存的大小。
可选地,电子设备后续为进程扩充的内存可以称为进程的动态申请内存,例如,上述第三连续内存可以称为第一进程的动态申请内存。
如此,由于在运行进程的过程中,当进程独占的内存不够用时,电子设备可以为进程分配与其独占的内存相连续的内存,因此可以在保证进程的正常运行的基上,保持进程独占的所有内存相连续,从而可以便于电子设备后续可以快速回收进程占用的内存。
可选地,在上述步骤202之前,本申请实施例提供的内存管理方法还可以包括下述的步骤208。
步骤208、电子设备回写第一进程的进程信息。
本申请实施例中,电子设备可以将进程的进程信息到磁盘。
例如,将进程的快照信息回写到磁盘中,该快照信息可以指示进程的进程信息。可以理解,通过回写进程的进程信息,可以在提高重新加载进程的加载速度。
可选地,可以通过电子设备中的实时回写系统,实现进程的进程信息的回写。例如,实时回写系统通过扫描进程独占的连续内存,以将该连续内存中的数据同步到磁盘。
需要说明的是,进程的快照信息可以用于快速重新加载进程。
例如,若电子设备接收到一个进程的切换指令,那么:
步骤01、电子设备先判断该进程占用的内存是否被回收。
步骤02、若未被回收,则电子设备直接切换到该进程。
步骤03、若被回收,电子设备可以判断系统内存中是否包括空闲且大小满足该进程的内存需求的连续内存。
步骤04、若系统内存中包括空闲且大小满足该进程的内存需求的连续内存,则根据该进程的快照信息,在该连续内存中加载并运行该进程。
步骤05、若系统内存中不包括空闲且大小满足该进程的内存需求的连续内存,那么电子设备可以做内存回收,腾出连续空闲且大小满足该进程的内存需求的连续内存,并根据该进程的快照信息,在腾出的连续内存中加载并运行该进程。
可选地,电子设备可以在将进程的快照信息回写至磁盘中之后,在一次性地回收进程独占的连续内存。
可选地,电子设备可以在创建进程时,在磁盘中为各进程分配一个磁盘区域,然后电子设备可以在将各进程的进程信息回写至对应的磁盘区域中。
例如,如图4所示,电子设备可以为进程A和进程B分别分配一个磁盘区域,电子设备可以在为各进程分配的磁盘区域中备份各进程的快照信息。
可选地,电子设备可以按照创建进程的先后顺序,依次在磁盘中为进程分配磁盘区域。其中,相邻时间创建的进程对应的磁盘区域的地址可以相邻。
例如,进程A对应的磁盘区域与进程B对应的磁盘区域相邻。
可选地,电子设备可以在为进程初次分配连续内存时,为各进程分配大小相同的一个磁盘区域。然后,在扩充进程独占的连续内存之后,再为进程分配另一个磁盘区域。该一个磁盘区域和该另一个磁盘区域可以相邻,也可以不相邻。其中,该一个磁盘区域可以用于存储位于初次分配的连续内存中的进程信息的快照信息,该另一个磁盘区域可以用于存储位于扩充的内存中的进程信息的快照信息。
例如,如图4所示,电子设备在创建进程A和B时,在系统内存中分别为进程A和B分配一个连续内存a1和b1,并在磁盘中分别为进程A和B分配一个磁盘区域a2和b2。其中,内存a1中的进程信息的快照信息可以回写至磁盘区域a2中,内存b1中的进程信息的快照信息可以回写至磁盘区域b2中。
然后,随着进程的内存需求的增加,图4所示,电子设备可以分别为进程A和B分配动态是申请内存a3和b3,并为进程A和B分配磁盘区域a4和b4。其中,内存a3中的进程信息的快照信息可以回写至磁盘区域a4中,内存b3中的进程信息的快照信息可以回写至磁盘区域b4中。
可以理解,电子设备分别将为进程初次分配的内存中的进程信息的快照信息回写至一个磁盘区域,并将为进程扩充的内存中的进程信息的快照信息回写至另一个磁盘区域,可以避免频繁调整不同进程在磁盘中对应的磁盘区域。
可选地,电子设备可以在运行第一进程之后,备份第一进程的快照信息。然后第一进程的进程信息每发生一次变化,电子设备可以更新备份第一进程的快照信息。如此可以确保电子设备备份第一进程最新的快照信息。如此,由于可以在进程的进程信息发生变化时,更新备份进程的快照信息,因此不但可以确保电子设备备份进程最新的快照信息,而且可以节省电子设备的功耗。
当然,实际实现中,电子设备也可以周期性地备份进程的快照信息。本申请不作限定。
如此,由于电子设备可以在回收进程独占的连续内存之前,先备份进程的快照信息,因此可以使得电子设备可以基于备份的快照信息,快速在系统内存中重新运行第一进程。
可选地,如图5所示,是内存管理的概念示意图。
如图5所示,系统内存可以包括:常驻区、共享区和动态申请区。
其中,常驻区用于运行不能被查杀的进程,如用于管理系统内存的进程。
共享区用于进程之间的数据交换,即共享区可以存放进程之间共享的信息。
动态申请区中可以用于运行可能频繁创建和查杀的进程。
可选地,上述第一连续内存可以为上述动态申请区中的内存。
可选地,如图5所示,进程A独占的连续内存的结束地址信息0x000000ff与进程B独占的连续内存的起始地址信息0x00000100相连续。
下面将本申请提供的内存管理方法与相关技术中的内存管理方法进行对比。
可选地,图1是相关技术中的内存管理示意图,其中,该内存管理示意图可以包括:应用层10、低内存终止守护进程(Low Memory Killer Deamon,LMKD)层11、内存回收机制层12、内存分配机制层13以及DDR层14。
其中,应用层10中可以包括已加载的各进程的界面信息,如进程A、进程B和进程C的界面信息;内存回收机制层12中可以包括内存溢出(Out Of Memory,OOM)机制、内核交换守护进程(Kernel Swap Daemon,kswapd)机制;内存分配机制层中包括slab内存分配机制和buddy内存分配机制;DDR层14中包括各进程的进程信息。
可以看出,在相关技术中,系统内存采用的是横向分层管理设计,且层级之间相互独立;由内存分配机制层统一为各进程信息分为内存单元,从而可能导致一个进程的进程信息分散在DDR层中不连续的内存单元中。如此可能导致电子设备回收进程占用的内存时,LMKD层中的内存回收机制可能需要进行多次查找和查杀进程信息,因此导致回收时长较长,回收时占用的CPU资源较多,从而会导致电子设备的运行性能进一步劣化。
图6是本申请实施例提供的内存管理方法的内存管理示意图,从该内存管理示意图中可以看出,本申请的内存管理方法是一种独享式管理方式,不同进程独享一块连续大内存,并且有独立的管理结构,而总的内存管理机构602(如内存回收(reclaim)机制)只需要负责管理各个进程占用的大块且连续的内存,这样回收的性能就会很快。
具体的,如图6所示,进程A独占系统内存的内存块60,内存块60中包括独立的应用层601、内存回收机制层603、DDR层604;进程B独占系统内存中的内存块61,内存块61中包括独立的应用层611、内存回收机制层613和DDR层614。并且内存块60和内存块61共享总的内存管理机构602。
可选地,内存回收机制层中可以设置slab内存回收机制和伙伴内存回收机制,以通过这些内存回收机制分配同一内存块中的DDR层中的内存。
可以理解,现有技术中的内存管理方法无法在进程保活和内存回收效率方面做到收益最大化,而本申请实施例提供的内存管理方法根本系统内存架构方向上优化了内存管理结构,即进程独享连续内存块,从而可以提高进程回收速度。进一步地,电子设备通过回写进程的进程信息的方式,实现在回收进程占用的内存的基础上,保证进程的存活。如此本申请实施例提供的内存管理方法不但可以确保进程保活数量可以做到最大收益,而且在内存回收程度也不会受到影响,同时本方案也优化了内存回收方面的效率,从而避免系统中遇到的内存不足的情况,最终可以解决掉因为内存不足而带来的慢卡顿问题。
可以理解,上述各个方法实施例,或者各个方法实施例中的各种可能的实现方式可以单独执行,或者,在不包括矛盾的前提下,也可以相互结合执行,具体可以根据实际使用需求确定,本申请实施例对此不做限制。
本申请实施例提供的内存管理方法,执行主体可以为内存管理装置。本申请实施例中以内存管理装置执行内存管理方法为例,说明本申请实施例提供的内存管理装置。
本申请实施例还提供一种内存管理装置,图7示出了本申请实施例提供的内存管理装置的结构示意图,如图7所示,本申请实施例提供的内存管理装置70可以包括:确定模块71和回收模块72。
所述确定模块71,用于在满足第一进程的内存回收条件的情况下,根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存,所述第一地址信息包括所述第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;
所述回收模块72,用于回收所述确定模块71确定的所述第一连续内存。
在本申请实施例提供的内存管理装置中,由于第一进程可以独占系统内存中的一个连续内存,因此可以根据第一进程关联的第一地址信息,快速查找到第一进程的全部进程信息,且仅执行一次内存回收操作即可完成对第一进程独占的内存的回收。如此相比于相关技术中需要在系统内存中进行多次查找和查杀才能回收一个进程占用的全部内存的方案,本申请实施例提供的内存管理方法可以快速回收进程占用的内存,缩短回收进程占用内存的时长,提高了内存回收效率。
进一步地,由于无需多次查找进程的进程信息,因此可以降低因查找待查杀进程的进程信息所抢占的CPU资源,从而可以避免电子设备的运行性能在查杀进程的过程中进一步变差。
一种可能的实现方式中,所述内存管理装置还包括:判断模块和运行模块。
所述判断模块,用于在所述确定模块根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存之前,在接收到所述第一进程的运行指令的情况下,判断系统内存中是否包括空闲且大小满足所述第一进程的内存大小条件的连续内存;
所述运行模块,用于在所述系统内存中包括空闲且大小满足所述第一进程的内存大小条件的至少一个连续内存情况下,在所述至少一个连续内存中的第二连续内存中运行所述第一进程;或者,在所述系统内存中不包括空闲且大小满足所述第一进程的内存大小条件的连续内存的情况下,回收系统内存中大小满足所述第一进程的内存大小条件的第二连续内存,并在所述第二连续内存中运行所述第一进程;
其中,所述第一连续内存中包括所述第二连续内存。
一种可能的实现方式中,内存管理装置还包括设置模块;
所述设置模块,用于在所述运行模块在所述第二连续内存中运行所述第一进程之前,在所述第二连续内存中设置内存分配机制,所述内存分配机制用于向所述第一进程的各进程信息分配所述第一连续内存中的双倍速率同步动态随机存储器DDR。
一种可能的实现方式中,内存管理装置还包括分配模块;
所述分配模块,用于在所述运行模块在所述第二连续内存中运行所述第一进程之后,在所述第二连续内存的大小不满足所述第一进程的内存大小条件的情况下,为所述第一进程分配第三连续内存,所述第三连续内存与所述第二连续内存相连续;
其中,所述第一连续内存还包括所述第三连续内存。
一种可能的实现方式中,内存管理装置还包括:回写模块;
所述回写模块,还用于在所述回收模块回收所述第一连续内存之前,回写所述第一进程的进程信息。
本申请实施例中的内存管理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的内存管理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的内存管理装置能够实现图2至图6的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图8所示,本申请实施例还提供一种电子设备800,包括处理器801和存储器802,存储器802上存储有可在所述处理器801上运行的程序或指令,该程序或指令被处理器801执行时实现上述内存管理方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图9为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、以及处理器710等部件。
本领域技术人员可以理解,电子设备700还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图9中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器710,用于在满足第一进程的内存回收条件的情况下,根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存,所述第一地址信息包括所述第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;
所述处理器710,用于回收确定的所述第一连续内存。
在本申请实施例提供的内存管理装置中,由于第一进程可以独占系统内存中的一个连续内存,因此可以根据第一进程关联的第一地址信息,快速查找到第一进程的全部进程信息,且仅执行一次内存回收操作即可完成对第一进程独占的内存的回收。如此相比于相关技术中需要在系统内存中进行多次查找和查杀才能回收一个进程占用的全部内存的方案,本申请实施例提供的内存管理方法可以快速回收进程占用的内存,缩短回收进程占用内存的时长,提高了内存回收效率。
进一步地,由于无需多次查找进程的进程信息,因此可以降低因查找待查杀进程的进程信息所抢占的CPU资源,从而可以避免电子设备的运行性能在查杀进程的过程中进一步劣化。
一种可能的实现方式中,所述内存管理装置还包括:处理器710,用于在根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存之前,在接收到所述第一进程的运行指令的情况下,判断系统内存中是否包括空闲且大小满足所述第一进程的内存大小条件的连续内存;
所述处理器710,用于在所述系统内存中空闲的至少一个连续内存的大小满足所述第一进程的内存大小条件的情况下,在所述至少一个连续内存中的第二连续内存中运行所述第一进程;或者,在所述系统内存中不包括空闲且大小满足所述第一进程的内存大小条件的连续内存的情况下,回收系统内存中大小满足所述第一进程的内存大小条件的第二连续内存,并在所述第二连续内存中运行所述第一进程;
其中,所述第一连续内存中包括所述第二连续内存。
一种可能的实现方式中,内存管理装置还包括处理器710;
所述处理器710,用于在所述第二连续内存中运行所述第一进程之前,在所述第二连续内存中设置内存分配机制,所述内存分配机制用于向所述第一进程的各进程信息分配所述第一连续内存中的双倍速率同步动态随机存储器DDR。
一种可能的实现方式中,内存管理装置还包括分配模块;
所述分配模块,用于在所述第二连续内存中运行所述第一进程之后,在所述第二连续内存的大小不满足所述第一进程的内存大小条件的情况下,为所述第一进程分配第三连续内存,所述第三连续内存与所述第二连续内存相连续;
其中,所述第一连续内存还包括所述第三连续内存。
一种可能的实现方式中,内存管理装置还包括:回写模块;
所述回写模块,还用于在回收所述第一连续内存之前,回写所述第一进程的进程信息。
应理解的是,本申请实施例中,输入单元704可以包括图形处理器(GraphicsProcessing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元706可包括显示面板7061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板7061。用户输入单元707包括触控面板7071以及其他输入设备7072中的至少一种。触控面板7071,也称为触摸屏。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器709可以包括易失性存储器或非易失性存储器,或者,存储器709可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。本申请实施例中的存储器709包括但不限于这些和任意其它适合类型的存储器。
处理器710可包括一个或多个处理单元;可选的,处理器710集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还包括另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (11)
1.一种内存管理方法,其特征在于,所述方法包括:
在满足第一进程的内存回收条件的情况下,根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存,所述第一地址信息包括所述第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;
回收所述第一连续内存。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存之前,所述方法还包括:
在接收到所述第一进程的运行指令的情况下,判断系统内存中是否包括空闲且大小满足所述第一进程的内存大小条件的连续内存;
在所述系统内存中包括空闲且大小满足所述第一进程的内存大小条件的至少一个连续内存情况下,在所述至少一个连续内存中的第二连续内存中运行所述第一进程;或者,
在所述系统内存中不包括空闲且大小满足所述第一进程的内存大小条件的连续内存的情况下,回收所述系统内存中大小满足所述第一进程的内存大小条件的第二连续内存,并在所述第二连续内存中运行所述第一进程;
其中,所述第一连续内存中包括所述第二连续内存。
3.根据权利要求2所述的方法,其特征在于,所述在所述第二连续内存中运行所述第一进程之前,所述方法还包括:
在所述第二连续内存中设置内存分配机制,所述内存分配机制用于向所述第一进程的各进程信息分配所述第一连续内存中的双倍速率同步动态随机存储器DDR。
4.根据权利要求2所述的方法,其特征在于,所述在所述第二连续内存中运行所述第一进程之后,所述方法还包括:
在所述第二连续内存的大小不满足所述第一进程的内存大小条件的情况下,为所述第一进程分配第三连续内存,所述第三连续内存与所述第二连续内存相连续;
其中,所述第一连续内存还包括所述第三连续内存。
5.根据权利要求1所述的方法,其特征在于,所述回收所述第一连续内存之前,所述方法还包括:
回写所述第一进程的进程信息。
6.一种内存管理装置,其特征在于,所述装置包括:确定模块和回收模块;
所述确定模块,用于在满足第一进程的内存回收条件的情况下,根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存,所述第一地址信息包括所述第一连续内存的以下至少两项:起始地址信息、地址长度和结束地址信息;
所述回收模块,用于回收所述确定模块确定的所述第一连续内存。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:判断模块和运行模块;
所述判断模块,用于在所述确定模块根据所述第一进程关联的第一地址信息,确定所述第一进程独占的第一连续内存之前,在接收到所述第一进程的运行指令的情况下,判断系统内存中是否包括空闲且大小满足所述第一进程的内存大小条件的连续内存;
所述运行模块,用于在所述系统内存中包括空闲且大小满足所述第一进程的内存大小条件的至少一个连续内存情况下,在所述至少一个连续内存中的第二连续内存中运行所述第一进程;或者,在所述系统内存中不包括空闲且大小满足所述第一进程的内存大小条件的连续内存的情况下,回收所述系统内存中大小满足所述第一进程的内存大小条件的第二连续内存,并在所述第二连续内存中运行所述第一进程;
其中,所述第一连续内存中包括所述第二连续内存。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括设置模块;
所述设置模块,用于在所述运行模块在所述第二连续内存中运行所述第一进程之前,在所述第二连续内存中设置内存分配机制,所述内存分配机制用于向所述第一进程的各进程信息分配所述第一连续内存中的双倍速率同步动态随机存储器DDR。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括分配模块;
所述分配模块,用于在所述运行模块在所述第二连续内存中运行所述第一进程之后,在所述第二连续内存的大小不满足所述第一进程的内存大小条件的情况下,为所述第一进程分配第三连续内存,所述第三连续内存与所述第二连续内存相连续;
其中,所述第一连续内存还包括所述第三连续内存。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:回写模块;
所述回写模块,还用于在所述回收模块回收所述第一连续内存之前,回写所述第一进程的进程信息。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-5任一项所述的内存管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008532.5A CN116954924A (zh) | 2023-08-10 | 2023-08-10 | 内存管理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008532.5A CN116954924A (zh) | 2023-08-10 | 2023-08-10 | 内存管理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116954924A true CN116954924A (zh) | 2023-10-27 |
Family
ID=88451204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311008532.5A Pending CN116954924A (zh) | 2023-08-10 | 2023-08-10 | 内存管理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116954924A (zh) |
-
2023
- 2023-08-10 CN CN202311008532.5A patent/CN116954924A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3514689B1 (en) | Memory management method and apparatus | |
CN106484472B (zh) | 一种内存回收方法及终端 | |
US10963387B2 (en) | Methods of cache preloading on a partition or a context switch | |
US11593186B2 (en) | Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory | |
US8589647B2 (en) | Apparatus and method for synchronizing a snapshot image | |
CN107533508B (zh) | 用于减少压缩存储器时的存储器承诺用量的方法和系统 | |
CN113778662B (zh) | 内存回收方法及装置 | |
CN107665098B (zh) | 信息处理方法、存储设备及计算机存储介质 | |
CN113204407A (zh) | 一种内存超配管理方法及装置 | |
CN115509953A (zh) | 内存回收方法及其装置 | |
CN117170872A (zh) | 内存管理方法、装置、设备和存储介质 | |
CN113031857B (zh) | 数据写入方法、装置、服务器及存储介质 | |
CN116954924A (zh) | 内存管理方法、装置及电子设备 | |
US20090031100A1 (en) | Memory reallocation in a computing environment | |
CN111078407B (zh) | 内存管理的方法、装置、存储介质及电子设备 | |
CN112965920A (zh) | 内存管理方法、装置、电子设备以及存储介质 | |
CN116680083A (zh) | 内存处理方法、装置、设备和存储介质 | |
CN116483575A (zh) | 内存管理方法、装置、电子设备及可读存储介质 | |
CN117271383A (zh) | 内存回收管理方法、装置、电子设备及可读存储介质 | |
WO2023185684A1 (zh) | 一种应用程序的进程查杀方法及电子设备 | |
CN118295809A (zh) | 内存管理方法、装置、电子设备及可读存储介质 | |
CN116954511A (zh) | 存储处理方法和电子设备、可读存储介质 | |
Kim et al. | Memory management scheme to improve utilization efficiency and provide fast contiguous allocation without a statically reserved area | |
CN116755884A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN118245221A (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 |