CN111562983B - 内存优化方法、装置、电子设备及存储介质 - Google Patents
内存优化方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111562983B CN111562983B CN202010366119.6A CN202010366119A CN111562983B CN 111562983 B CN111562983 B CN 111562983B CN 202010366119 A CN202010366119 A CN 202010366119A CN 111562983 B CN111562983 B CN 111562983B
- Authority
- CN
- China
- Prior art keywords
- pages
- page
- same
- memory
- same attribute
- 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.)
- Active
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/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
- 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/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 Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种内存优化方法、装置、电子设备及存储介质。该方法包括:确定待读取页面中是否包括多个属性相同的页面;若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;从外存读取所述多个属性相同的页面,写入所述多页面内存空间。本申请还提供了相应的装置。
Description
技术领域
本申请涉及电子设备技术领域,更具体地,涉及一种内存优化方法、装置、电子设备及存储介质。
背景技术
在电子设备的运行过程中,页面的读取和释放很频繁。但是,页面的不断申请和释放可能造成系统的内存碎片化。
发明内容
鉴于上述问题,本申请提出了一种内存优化方法、装置、电子设备及存储介质,在读取页面时,同时读取属性相同的页面,并写入连续地址的内存空间,对应的,回收时回收属性相同的页面,降低内存碎片化。
第一方面,本申请实施例提供了一种内存优化方法,所述方法包括:确定待读取页面中是否包括多个属性相同的页面;若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;从外存读取所述多个属性相同的页面,写入所述多页面内存空间。
第二方面,本申请实施例提供了一种一种内存优化方法,所述方法包括:判断内存的待回收页面中是否包括多个属性相同的页面;若是,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
第三方面,本申请实施例提供了一种内存优化装置,包括:属性判断单元,用于确定待读取页面中是否包括多个属性相同的页面;内存申请单元,用于若是相同属性的多个页面,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;页面写入单元,用于从外存读取所述多个属性相同的页面,写入所述多页面内存空间。
第四方面,本申请实施例提供了一种内存优化装置,包括:属性识别单元,用于判断内存的待回收页面中是否包括多个属性相同的页面;页面回收单元,用于若是属性相同的多个页面,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
第五方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第六方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述计算机程序被处理器执行时实现上述的方法。
相对于现有技术,本申请提供的内存优化方法、装置、电子设备及存储介质,在待读取页面中包括多个属性相同的页面的情况下,申请地址连续的多页面内存空间用于将该多个属性相同的页面写入。对应的,在回收内存中的页面时,若内存中包括属性相同的多个页面,则将多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。多个属性相同的页面写入地址连续的多页面内存空间,在回收时将多个属性相同的页面回收,可以释放地址连续的多页面内存空间,从而释放连续的物理内存,降低内存碎片化。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请一个实施例的内存优化方法流程图。
图2示出了根据本申请另一个实施例的内存优化方法流程图。
图3示出了根据本申请又一个实施例的内存优化方法流程图。
图4示出了根据本申请一个实施例提供的内存优化方法中步骤S410的流程图。
图5示出了根据本申请再一个实施例的内存优化方法流程图。
图6示出了根据本申请一个实施例的内存优化装置的功能模块图。
图7示出了根据本申请另一个实施例的内存优化装置的功能模块图。
图8是本申请实施例的用于执行根据本申请实施例的内存优化方法的电子设备的框图。
图9是本申请实施例的用于保存或者携带实现根据本申请实施例的内存优化方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在电子设备中,可以以页(page)或者说页面(page)为单位对存储设备进行管理,对应的,存储设备中包括对应页的物理存储空间页帧(frame),页帧中的存储地址连续,各个页帧之间地址连续。页帧的大小可以是与页相同,即页帧的可存储量等于页帧的数据量。在存储设备中进行数据的读取和释放时以页为单位进行,每个页帧用于写入一个页的内容。例如,从外存的一个页帧读取一个页的内容,写入内存的一个页帧。
电子设备在运行过程中,会涉及到频繁的页写入和页回收,对应的频繁的页帧申请和释放。其中,页写入时将页写入申请的页帧,页回收时从页帧回收页以释放页帧。也就是说,页写入即将页写入页帧,或者说将页的内容写入页帧;页回收即将页帧中的页回收,或者说将页帧中的页面内容回收。
电子设备的内存中,频繁的页写入和页回收,不断的申请和释放内存中的页帧,会使内存碎片化较为严重。
发明人在研究中发现,在读取页面时,读取属性相同的页面,并写入连续地址的内存空间,对应的,回收时也回收属性相同的页面,能实现多个页帧的回收,回收获得多个连续的物理内存,降低内存的碎片化。
因此,发明人提出了本申请实施例中的内存优化方法,确定待读取页面中是否包括多个属性相同的页面;若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;从外存读取所述多个属性相同的页面,写入所述多页面内存空间。对应的,在回收这些页面时,判断内存的待回收页面中是否包括多个属性相同的页面;若是,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。从而可以实现页面在回收时可以回收属性相同的页面对应的连续的内存空间,降低内存碎片化。
下面将结合附图对本申请实施例进行详细的说明。
请参阅图1,本申请实施例提供了一种内存优化方法,用于读取待读取页面并写入内存,该方法可以包括:
步骤S110,确定待读取页面中是否包括多个属性相同的页面。
在本申请实施例中,定义需要读取并写入内存的页面为待读取页面。待读取页面可以是存储于外存中的页面,可以从外存读取写入内存。可以理解的,读取页面即读取页面的内容,或者说读取存储设备中页帧中的内容。
在需要读取待读取页面的情况下,可以确定待读取页面中是否包括多个属性相同的页面,即是否存在两个或者两个以上的待读取页面具有相同属性。其中,属性相同的页面,为可以一起读取的页面,在属性相同的页面中,若有一个页面可以读取,则其他页面也可以读取。
步骤S120,若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量。
若在待读取页面中包括了多个属性相同的页面,可以申请内存中的连续地址用以写入这些属性相同的页面,在本申请实施例中,为便于描述,定义申请的地址连续的内存空间为多页面内存空间。申请的该多页面内存空间的存储量大于或等于这些属性相同的页面。
在内存中对应页的内存空间为页帧时,申请的多页面内存空间可以为内存中的多个页帧,用于写入该多个属性相同的页面。该多个页帧在内存中地址连续。
步骤S130,从外存读取所述多个属性相同的页面,写入所述多页面内存空间。
在读取外存中的待读取页面写入内存时,可以读取该多个属性相同的页面,并将其写入申请的多页面内存空间。
可选的,在写入多页面内存空间时,可以将多个页面依次写入多页面内存空间中的连续地址,或者说将多个页面的内容依次写入多页面内存空间中的连续地址,或者说将多个页面依次写入多页面内存空间中连续的页帧。
本申请实施例中,在需要读取待读取页面的情况下,确定待读取页面中是否包括多个属性相同的页面;若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;从外存同时读取所述多个属性相同的页面,写入所述多页面内存空间。从而可以实现在读取页面时可以同时读取属性相同的页面并写入对应的连续的内存空间,降低内存碎片化。
请参阅图2,本申请另一实施例提供了一种内存优化方法,在上一实施例的基础上重点描述了内存优化方法还可以包括:对所述多个属性相同的页面添加相同预设标记,用于指示在进行内存回收时对具有所述相同预设标记的页面同时回收以及当待读取的页面中没有多个属性相同的页面时的读取情况。
步骤S210:确定待读取页面中是否包括多个属性相同的页面。若是,执行步骤S220;若否,执行步骤S250。
在需要读取待读取页面的情况下,可以确定待读取页面中是否包括多个属性相同的页面,即是否存在两个或者两个以上的待读取页面具有相同属性。若待读取页面中包括了多个属性相同的页面,则可以申请多页面内存空间用于写入该多个属性相同的页面;若待读取页面中不包括多个属性相同的页面,即待读取页面中的所有页面的属性均不相同,可以申请单页面内存空间,用于写入单个的页面,增加对存储量较小的单页面内存空间的利用率。其中,本申请实施例中所描述的多个属性相同的页面,可以是待读取页面中属性相同的所有页面。
在一种实施方式中,可以电子设备的应用程序启动时执行页面读取与写入,在读取页面之前首先判断在所有的待读取页面中是否包括了多个属性相同的页面。
在另一种实施方式中,电子设备的应用程序定时刷新时也可以执行读取写入操作,同样的,在读取页面之前首先判断在待读取页面中是否包括了多个属性相同的页面。
在本申请实施例中,可以由电子设备的系统内核识别页面的属性,如电子设备的系统为Linux系统,应用程序在Linux内核中,则可以由Linux内核调用识别函数,识别在待读取页面中是否包括了多个属性相同的页面。
在本申请实施例中,可以通过属性标识来区别页面的属性是否相同,其中,属性相同的页面可以具有相同的属性标识,属性不同的页面的属性标识不同。页面的属性标识在页面中的具体存储位置并不限定,例如属性标识可以存储在页面的数据列表里,用于标识出页面的属性。
电子设备可以根据属性标识确定待读取页面中是否包括多个属性相同的页面。具体的,可以判断待读取页面中是否包括多个具有相同属性标识的页面,若是,确定待读取页面中包括多个属性相同的页面,所述多个属性相同的页面为具有相同属性标识的页面。也就是说,若待读取页面中包括属性标识相同的页面,则将属性标识相同的页面确定为属性相同的页面
其中,页面的属性标识具体包括哪些在本申请实施例中并不限定,例如可以包括但不限于可读、可写、可执行。
在本申请实施例中,属性相同的页面并不限定为属性标识相同的页面,通过属性标识确定页面的属性是否相同时,可以根据属性标识的设置规则确定,确定设置规则中指定的属性相同的页面为属性相同的页面,其他页面为属性不同的页面。例如,若属性标识的设置规则为属性相同的页面设置相同的属性标识,则有页面的属性标识相同时,确定属性标识相同的页面为属性相同的页面;若属性标识的设置规则为属性相同的页面设置相同结构的属性标识,则有页面的属性标识的结构相同时,确定结构相同的属性标识的页面为属性相同的页面;若属性标识的设置规则为属性相同的页面设置属性标识中的指定部分相同,则有页面的属性标识的指定部分相同时,确定属性标识的指定部分相同的页面为属性相同的页面。
步骤S220:申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量。
若在待读取页面中包括了多个属性相同的页面,可以申请内存中的连续地址用以写入这些属性相同的页面。在待读取页面中,同一属性的所有页面所需存储量小于或等于多页面内存空间的存储量。
在本申请实施例中,可以由系统的内核申请内存空间,如电子设备的系统为Linux系统,则可以由Linux内核进行内存空间的申请。
可选的,在本申请实施例中,多页面内存空间的存储量可以是等于该多个属性相同的页面所需存储量。
可选的,当内存申请时,若只能以预设的规则进行申请,则可以是按照预设规则申请可存储该多个属性相同的页面的最小内存空间,申请的内存空间可能大于该多个属性相同的页面所需的存储空间,也可能等于该多个属性相同的页面所需的存储空间。例如,若每次只能申请2的指数个的页帧,则可以申请2的m次方个连续的页帧,且2的(m-1)次方小于该多个属性相同的页面的页面数量,其中m为大于或等于1的整数。如,若有3个属性相同的页面,则需要在内存中连续存储3个页面,可以申请22=4个页帧;若有6个属性相同的页面,则需要在内存中连续存储6个页面,可以申请23=8个页帧。
步骤S230:对所述多个属性相同的页面添加相同预设标记,用于指示在进行内存回收时对具有所述相同预设标记的页面同时回收。
在确定了待读取页面中包括了多个属性相同的页面后,可以给该多个属性相同的页面添加相同的预设标记,从而在页面回收时可以对具有相同预设标记的页面同时回收,实现较大的内存空间的回收,降低内存的碎片化。可以理解的,对于属性不同的页面,添加的预设标记不同。
在一种实施方式中,可以由系统的内核添加预设标记,由于内核的版本迭代后可能会影响原来的属性标识,导致属性标识位置或者数据发生变化,影响后续回收待回收页面时判断页面是否为多个属性相同的页面;另外,内核在处理读取写入这一系列操作后,页面的属性标识的位置或数据也有可能会发生变化,所以在本申请实施例中可以添加预设标记来表示属性相同的页面,或者说表示可以一同回收的页面。在回收待回收页面时通过预设标记是否相同判断页面是否为多个属性相同的页面,用于避免页面的属性标识位置或数据发生变化时无法根据页面属性标识判断是否为多个属性相同的页面的问题。在本申请实施例中,步骤S230相对于步骤S220以及步骤S240的先后顺序可以并不限定,使写入多页面内存空间的属性相同的页面添加相同预设标记即可。
在本申请实施例中,对于确定的属性相同的待读取页面,也可以并不限定为添加相同的预设标记,也可以是其他标记添加规则表示写入多页面内存空间的属性相同的页面。可以对需要写入多页面内存空间的属性相同的页面添加相同结构的标记,或者添加指定部分相同的标记等。
步骤S240:从外存读取所述多个属性相同的页面,写入所述多页面内存空间。
在需要读取待读取页面的情况下,所述待读取页面在外存中,从外存中读取多个属性相同的页面,对应的,将这些属性相同的页面写入上一步申请的内存中的连续地址中。
在一种实施方式中,电子设备的应用程序开启或定时刷新时执行页面读取与写入,应用程序的数据在还没有启动前存储在电子设备的外存中,电子设备的处理器(CPU,central processing unit)负责执行读取和写入的命令。在执行过程中,CPU读取外存中待读取且已经确定的多个属性相同的页面,并由CPU来将属性相同的页面写入电子设备的系统内核代码申请的用于存储该多个属性相同的页面的连续地址中,这些连续地址在电子设备的内存中。
在本申请实施例中,在读取所述多个属性相同的页面时,可以同时从外存读取所述多个属性相同的页面。在需要读取待读取页面的情况下,所述多个属性相同的页面在外存中,从外存中读取这些属性相同的页面时,可以是同时读取的。在一种实施方式中,电子设备的应用程序的数据在还没有启动前存储在电子设备的外存中,电子设备的CPU负责执行读取和写入的命令。在执行的过程中,CPU同时读取外存中待读取且已经确定的多个属性相同的页面。
可选的,在本申请实施例中,在读取所述多个属性相同的页面时,也可以依次读取,在多个属性相同的页面读取完成后,再读取其他待读取页面。
可选的,在本申请实施例中,当申请的多页面内存空间的存储量大于多个属性相同的页面所需存储量时,在多页面内存空间中写入属性相同的页面,多页面内存空间中的其他未写入页面的部分可以保持空闲,不写入其他数据。
可选的,在本申请实施例中,若有多组属性相同的待读取页面,可以对应每一组属性相同的页面申请地址连续的多页面内存空间,可以对应每一组属性相同的页面添加相同的预设标记,将每一组属性相同的页面写入申请的多页面内存空间。也就是说,对应每一组属性相同的待读取页面,申请一个用于写入该组属性相同的待读取页面的多页面内存空间,并将该组属性相同的页面写入申请的多页面内存空间,可以对该组属性相同的页面添加相同的预设标记。其中,同一组属性相同的页面的属性相同,不同组的页面的属性不同。
具体的,若有多组属性相同的待读取页面,可以分组处理。例如,对应一组属性相同的待读取页面申请多页面内存空间,并读取该组属性相同的待读取页面写入多页面内存空间后,可以继续对应下一组属性相同的待读取页面申请多页面内存空间,并读取该下一组属性相同的待读取页面写入申请的多页面内存空间。其中,对应每一组属性相同的待读取页面申请多页面内存空间时,申请的多页面内存空间的存储量大于或等于该组属性相同的待读取页面所需存储量。具体大于还是等于,可以参见前述的相关描述。
步骤S250:申请用于存储单个页面的单页面内存空间,所述单页面内存空间的存储量小于所述多页面内存空间。
在本申请实施例中,定义单个页面对应的内存空间为单页面内存空间。单页面内存空间的存储量小于多页面内存空间。在本申请实施例中,单页面内存空间的存储量可以等于单个页面的存储量。例如,内存中包括多个页帧,则申请的单页面内存空间可以为一个页帧。
若在待读取页面中不包括多个属性相同的页面,即各待读取页面的属性都不同,可以分开存储。其中,属性不同的页面可以存储在不同的单页面内存空间,可以申请单页面内存空间用于存储单个页面。
另外,当电子设备读取完待读取页面中多个属性相同的页面时,若还有剩下的页面的属性彼此均不同,剩余的待读取页面为属性不同的页面,可以申请单页面内存空间存储剩下的不同属性的页面中的单个页面。
步骤S260:读取单个页面并写入所述单页面内存空间。
若待读取页面中不包括多个属性相同的页面,在读取外存中的待读取页面写入内存时,可以单独读取各个页面,并将其单独写入申请的单页面内存空间。也就是说,若待读取页面都为属性不同的页面,可以申请单页面内存空间,读取一个待读取页面写入单页面内存空间。可选的,若还剩余待读取页面,且剩余的待读取页面属性都不同,可以继续申请单页面内存空间,并读取一个待读取页面写入申请的单页面内存空间。在本申请实施例中,可以是,在待读取页面中同时包括属性相同的多个页面和属性不同于其他页面的单个页面,可以对应属性相同的多个页面申请多页面内存空间并读取存储后,在剩余的页面都为属性不同的页面时,再申请单页面内存空间,在该单页面内存空间中读取并写入一个待读取页面。即可以是优先完成对属性相同的页面的读取和存储后,再不存在属性相同的页面进行读取和存储。
在本申请实施例中,在需要读取待读取页面的情况下,确定待读取页面中是否包括多个属性相同的页面。若包括多个属性相同的页面,申请地址连续的多页面内存空间,从外存同时读取所述多个属性相同的页面,写入所述多页面内存空间。并且,可以对所述多个属性相同的页面添加相同预设标记,用于指示在进行内存回收时对具有所述相同预设标记的页面同时回收。若不包括多个属性相同的页面,即若所有页面的属性都不同,可以申请用于存储单个页面的单页面内存空间,读取单个页面并写入单页面内存空间。从而在多个属性相同的页面时,申请的为较大的内存空间,用于回收时一起回收,降低内存碎片化。
请参阅图3,本申请又一实施例提供了一种内存优化方法,用于回收待回收页面并写入内存,该方法可以包括:
步骤S310,判断内存的待回收页面中是否包括多个属性相同的页面。
在本申请实施例中,定义需要回收的页面为待回收页面。待回收页面是存储于内存中并需要回收的页面。可以理解的,回收页面即回收页面的内容,或者说回收存储设备中页帧中的内容。
在需要回收待回收页面的情况下,可以确定待回收页面中是否包括多个属性相同的页面,即是否存在两个或者两个以上的待回收页面具有相同属性。其中,属性相同的页面,为可以一起回收的页面,在属性相同的页面中,若有一个页面可以回收,则其他页面也可以回收。
步骤S320,若是,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
若在待回收页面中包括了多个属性相同的页面,可以将该多个属性相同的页面回收,回收后会释放该多个属性相同的页面对应的多页面内存空间。
可选的,在回收多个属性相同的页面时,可以回收该多个属性相同的页面,回收后释放内存中对应的连续地址,。
在本申请实施例中,在需要回收待回收页面的情况下,判断内存的待回收页面中是否包括多个属性相同的页面;若是,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。从而可以实现页面在被回收时可以回收属性相同的页面对应的连续多页面内存空间,降低内存碎片化。
请参阅图5,本申请再一实施例提供了一种内存优化方法,在上一实施例的基础上重点描述了在需要回收待回收页面时,如何确定是否包括属性相同的页面,以及当待回收的页面中没有多个属性相同的页面时的回收情况,该方法包括:
步骤S410:判断内存的待回收页面中是否包括多个属性相同的页面。若是,执行步骤S420;若否,执行步骤S430。
在需要回收待回收页面的情况下,可以确定待回收页面中是否包括多个属性相同的页面,即是否存在两个或者两个以上的待回收页面具有相同属性。若待回收页面中包括了多个属性相同的页面,则回收存储多个属性相同的页面的多页面内存空间,否则回收存储单个页面的单页面存储空间。
页面回收时,可以是将存储页面的存储空间中的数据擦除,使该部分存储空间成为空闲的存储空间,可以被申请用于页面存储。
在一种具体的应用场景中,可以由系统的内核判断页面的属性,如电子设备的系统为Linux系统,回收过程中判断待回收页面的属性由Linux内核处理。其中,内存是电子设备中的内存,待回收页面为可以被回收的页面。回收可以被回收的页面的场景可以是,为了避免系统陷入页面紧缺的困境,内核线程周期回收可以被回收的页面;其二,在电子设备中的应用程序退出时,内存中对应的页面同步被回收。另外,可以被回收的页面可以是属性为可读以及可执行的页面,如前述场景中的回收;当属性为可写的页面没有被修改时也可以被回收。
在一种实施方式中,在回收待回收页面时,可以根据页面中的属性标识判断待回收页面中是否包括多个属性相同的页面。若在待回收页面中,存在多个页面的属性标识相同,则可以确定属性标识相同的多个页面为属性相同的页面。
在该实施方式中,根据页面中的属性标识判断待回收页面中是否包括多个属性相同的页面时,并不一定限定为属性标识相同的页面,具体哪些页面为属性相同的页面,可以根据属性标识的设置规则确定,可以参见前述实施例中根据属性标识判断属性相同的页面的描述,在此不再赘述。
在另一种实施方式中,在将属性相同的页面写入内存时,对于属性相同的页面添加有相同的预设标记。在回收待回收页面时,判断在内存中的待回收页面中是否包括多个属性相同的页面时,可以根据页面中的预设标记判断待回收页面中是否包括多个属性相同的页面。在本申请实施例中,根据预设标记判断待回收的页面中是否包括多个属性相同的页面。具体的,可以参阅图4,步骤S410可以包括以下步骤:
步骤S411,判断所述内存的待回收页面中是否包括添加有相同预设标记的多个页面。
在确定了待读取页面中包括了多个属性相同的页面后,给该多个属性相同的页面添加相同的预设标记,在需要回收待回收页面的情况下,根据判断多个页面是否有相同的预设标记来判断是否为相同属性的多个页面,是否将多个页面都进行回收。
在一种具体的应用场景中,可以由系统的内核识别预设标识,如电子设备的系统为Linux系统,由Linux内核识别内存中是否包括多个具有相同的预设标记的页面。
步骤S412,若包括添加有相同预设标记的多个页面,确定添加有相同预设标记的所述多个页面为属性相同的多个页面。
在需要回收待回收页面的情况下,根据该预设标记来判断内存中是否包括多个属性相同的页面。若内存中待回收页面包括添加有相同预设标记的多个页面,则可以确定添加有相同预设标记的所述多个页面为属性相同的多个页面。
在一种具体的应用场景中,可以由系统的内核识别预设标识,如电子设备的系统为Linux系统,由Linux内核确定内存中是否有属性相同的多个页面。
可选的,在该实施方式中,根据预设标记判断待回收页面是否为属性相同的页面时,并不一定限定为预设标记相同的页面,具体哪些页面为属性相同的页面,可以根据预设标记的添加规则确定,可以参见前述实施例中对相同属性的页面添加预设标记的规则的描述,在此不再赘述。
步骤S420:将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
若在待回收页面中包括了多个属性相同的页面,则将该多个属性相同的页面回收,回收后会释放该多个属性相同的页面对应的多页面内存空间。也就是说,由于多个属性相同的页面连续写入申请的多页面内存空间,在进行页面回收时,回收多个属性相同的页面,实现多页面内存空间的释放。由于多页面内存空间的存储量大于或等于多个页面,其存储空间较大,实现较大且连续的物理内存的回收释放。
可选的,电子设备的应用程序关闭或内存中存储的页面过多以至于页面紧缺时,可以由电子设备的CPU执行回收。在执行的过程中,CPU回收内存中对应地址的多个页面,回收后释放内存中对应的地址,实现一次性释放包括多个页帧的多页面内存空间。
可选的,在本申请实施例中,若待回收页面包括有多组属性相同的页面,则可以根据需求对其中一组或多组属性相同的页面依次进行回收,释放回收的每一组属性相同的页面对应的多页面内存空间。
步骤S430,逐个回收单个页面,以释放单个页面写入的单页面内存空间。
若在待回收页面中不包括多个属性相同的页面,即待回收页面的属性都不同,可以逐个回收单个页面,回收后会释放该单个页面对应的内存空间。
另外,当回收完待回收页面中多个属性相同的页面时,若还有剩下的页面的属性彼此不同,逐个回收单个页面,回收后释放该单个页面对应的内存空间。
在本申请实施例中,在需要回收待回收页面的情况下,判断内存的待回收页面中是否包括多个属性相同的页面。若是,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。若否,逐个回收单个页面,释放单个页面对应的内存空间。本申请实施例中,优先回收多页面内存空间,使回收释放的内存空间地址连续且存储量较大,有效降低内存碎片化。
请参阅图6,其示出了本申请实施例提供的一种内存优化装置500的功能模块图,该装置500可以包括:属性判断单元510、内存申请单元520、页面写入单元530。所述属性判断单元510,用于确定待读取页面中是否包括多个属性相同的页面;所述内存申请单元520,用于若是相同属性的多个页面,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;所述页面写入单元530,用于从外存读取所述多个属性相同的页面,写入所述多页面内存空间。
可选的,所述属性判断单元510还用于对所述多个属性相同的页面添加相同预设标记,用于指示在进行内存回收时对具有所述相同预设标记的页面同时回收。
可选的,所述属性判断单元510还用于判断待读取页面中是否包括多个具有相同属性标识的页面,若是,确定待读取页面中包括多个属性相同的页面,所述多个属性相同的页面为具有相同属性标识的页面。
可选的,所述内存申请单元520还用于若待读取页面中不包括多个属性相同的页面,申请用于存储单个页面的单页面内存空间,所述单页面内存空间的存储量小于所述多页面内存空间;读取单个页面并写入所述单页面内存空间。
可选的,所述页面写入单元530还用于同时从外存读取所述多个属性相同的页面。
请参阅图7,其示出了本申请实施例提供的一种内存优化装置600的功能模块图,该装置可以包括:属性识别单元610、页面回收单元620。所述属性识别单元610,用于判断内存的待回收页面中是否包括多个属性相同的页面;所述页面回收单元620,用于若是属性相同的多个页面,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
可选的,所述属性识别单元610还用于判断所述内存中是否包括添加有相同预设标记的多个页面;若包括添加有相同预设标记的多个页面,确定添加有相同预设标记的所述多个页面为属性相同的多个页面。
可选的,所述页面回收单元620还用于若所述内存的待回收页面中不包括属性相同的多个页面,逐个回收单个页面,以释放单个页面写入的单页面内存空间。
在本申请实施例中,在需要读取待读取页面的情况下,可以确定待读取页面中是否包括多个属性相同的页面;若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量;从外存同时读取所述多个属性相同的页面,写入所述多页面内存空间。若否,申请用于存储单个页面的单页面内存空间,读取单个页面并写入所述单页面内存空间。在需要回收待回收页面的情况下,判断内存的待回收页面中是否包括多个属性相同的页面;若是,将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。若否,逐个回收单个页面,释放单个页面对应的内存空间。在将页面写入内存时,属性相同的多个页面写入地址连续的多页面内存空间,对应的,在回收时,属性相同的页面一起回收,可以一次性释放地址连续的多页面内存空间,使释放物理内存空间较大,大于或等于多个属性相同的页面所需存储量,从而降低内存碎片化。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图8,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备700可以是智能手机、平板电脑、电子书阅读器等能够运行应用程序的智能设备,电子设备中可以安装有操作系统,用于管理电子设备的硬件与软件资源。本申请中的电子设备700可以包括一个或多个如下部件:处理器710、存储器720以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器720中并被配置为由一个或多个处理器710执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器710可以包括一个或者多个处理核。处理器710利用各种接口和线路连接整个电子设备700内的各个部分,通过运行或执行存储在存储器720内的指令、程序、代码集或指令集,以及调用存储在存储器720内的数据,执行电子设备700的各种功能和处理数据。可选地,处理器710可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器710可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块通信芯片进行实现。
存储器720可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器720可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端700在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图9,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种内存优化方法,其特征在于,应用于电子设备,所述方法包括:
判断待读取页面中是否包括多个具有相同属性标识的页面;
若是,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量,其中,所述多个属性相同的页面为具有相同属性标识的页面;
从外存读取所述多个属性相同的页面,写入所述多页面内存空间;
对所述多个属性相同的页面添加相同预设标记,用于指示在进行内存回收时对具有所述相同预设标记的页面同时回收,其中,所述属性标识的位置或者数据随所述电子设备的系统内核更新而发生变化。
2.根据权利要求1所述的方法,其特征在于,所述读取所述多个属性相同的页面,包括:
同时从外存读取所述多个属性相同的页面。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若待读取页面中不包括多个属性相同的页面,申请用于存储单个页面的单页面内存空间,所述单页面内存空间的存储量小于所述多页面内存空间;
读取单个页面并写入所述单页面内存空间。
4.一种内存优化方法,其特征在于,应用于电子设备,所述方法包括:
判断所述内存的待回收页面中是否包括添加有相同预设标记的多个页面,其中,所述预设标记为所述电子设备在将多个属性相同的页面写入多页面内存空间的情况下,为属性相同的页面添加的预设标记,属性相同的页面对应的预设标记相同;
若包括添加有相同预设标记的多个页面,确定添加有相同预设标记的所述多个页面为属性相同的多个页面;
将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述内存的待回收页面中不包括属性相同的多个页面,逐个回收单个页面,以释放单个页面写入的单页面内存空间。
6.一种内存优化装置,其特征在于,应用于电子设备,所述装置包括:
属性判断单元,用于判断待读取页面中是否包括多个具有相同属性标识的页面;
内存申请单元,用于若是相同属性的多个页面,申请地址连续的多页面内存空间,所述多页面内存空间的存储量大于或等于所述多个属性相同的页面所需存储量,其中,所述多个属性相同的页面为具有相同属性标识的页面;
页面写入单元,用于从外存读取所述多个属性相同的页面,写入所述多页面内存空间,对所述多个属性相同的页面添加相同预设标记,用于指示在进行内存回收时对具有所述相同预设标记的页面同时回收,其中,所述属性标识的位置或者数据随所述电子设备的系统内核更新而发生变化。
7.一种内存优化装置,其特征在于,应用于电子设备,所述装置包括:
属性识别单元,用于判断所述内存的待回收页面中是否包括添加有相同预设标记的多个页面,其中,所述预设标记为所述电子设备在将多个属性相同的页面写入多页面内存空间的情况下,为属性相同的页面添加的预设标记,属性相同的页面对应的预设标记相同,若包括添加有相同预设标记的多个页面,确定添加有相同预设标记的所述多个页面为属性相同的多个页面;
页面回收单元,用于将所述多个属性相同的页面回收,以释放所述多个属性相同的页面写入的多页面内存空间。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-5任一项所述的方法。
9.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366119.6A CN111562983B (zh) | 2020-04-30 | 2020-04-30 | 内存优化方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366119.6A CN111562983B (zh) | 2020-04-30 | 2020-04-30 | 内存优化方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111562983A CN111562983A (zh) | 2020-08-21 |
CN111562983B true CN111562983B (zh) | 2023-01-06 |
Family
ID=72073252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010366119.6A Active CN111562983B (zh) | 2020-04-30 | 2020-04-30 | 内存优化方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111562983B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568581B (zh) * | 2021-07-29 | 2023-08-01 | 武汉天喻信息产业股份有限公司 | 一种嵌入式设备的多应用资源回收方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1393780A (zh) * | 2001-06-28 | 2003-01-29 | 华为技术有限公司 | 自适应动态内存管理方法 |
CN101196850A (zh) * | 2007-12-28 | 2008-06-11 | 祥硕科技股份有限公司 | 数据存取整合方法及其系统 |
CN101635655A (zh) * | 2008-07-25 | 2010-01-27 | 阿里巴巴集团控股有限公司 | 页面性能测试的方法、装置及系统 |
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN109271247A (zh) * | 2017-07-12 | 2019-01-25 | 珠海市魅族科技有限公司 | 内存优化方法、装置、计算机装置以及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6778175B2 (en) * | 2002-02-05 | 2004-08-17 | Xgi Technology Inc. | Method of arbitration of memory request for computer graphics system |
US9058212B2 (en) * | 2011-03-21 | 2015-06-16 | Microsoft Technology Licensing, Llc | Combining memory pages having identical content |
CN102831069B (zh) * | 2012-06-30 | 2016-03-30 | 华为技术有限公司 | 内存处理方法、内存管理设备 |
CN104050189B (zh) * | 2013-03-14 | 2019-05-28 | 华为技术有限公司 | 页面共享处理方法及装置 |
CN105677756A (zh) * | 2015-12-28 | 2016-06-15 | 曙光信息产业股份有限公司 | 一种文件系统中有效利用缓存的方法和装置 |
CN106843756B (zh) * | 2017-01-13 | 2019-12-31 | 中国科学院信息工程研究所 | 基于页面分类的内存页面回收方法及系统 |
CN109195153B (zh) * | 2018-08-01 | 2021-09-28 | Oppo广东移动通信有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
-
2020
- 2020-04-30 CN CN202010366119.6A patent/CN111562983B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1393780A (zh) * | 2001-06-28 | 2003-01-29 | 华为技术有限公司 | 自适应动态内存管理方法 |
CN101196850A (zh) * | 2007-12-28 | 2008-06-11 | 祥硕科技股份有限公司 | 数据存取整合方法及其系统 |
CN101635655A (zh) * | 2008-07-25 | 2010-01-27 | 阿里巴巴集团控股有限公司 | 页面性能测试的方法、装置及系统 |
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN109271247A (zh) * | 2017-07-12 | 2019-01-25 | 珠海市魅族科技有限公司 | 内存优化方法、装置、计算机装置以及存储介质 |
Non-Patent Citations (2)
Title |
---|
The channel capacity of read/write isolated memory;Chuanlong Wang 等;《Discrete Applied Mathematics》;20160110;第264-273页 * |
多类别属性的定序分类模型;朱颢东 等;《北京邮电大学学报》;20090722;第32卷(第3期);第113-117页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111562983A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111352861B (zh) | 内存压缩方法、装置及电子设备 | |
US10261918B2 (en) | Process running method and apparatus | |
WO2010045028A1 (en) | System and method of indirect register access | |
US20220035655A1 (en) | Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium | |
WO2017020647A1 (zh) | 基于新型存储器的嵌入式文件系统及其实现方法 | |
KR101555210B1 (ko) | 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치 | |
CN111444030B (zh) | 数据储存装置及避免固件失效的方法 | |
CN111324303A (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
CN108205501B (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
US20200218652A1 (en) | Method and computer program product for performing data writes into a flash memory | |
CN109542495A (zh) | 一种软件升级方法及装置 | |
CN111562983B (zh) | 内存优化方法、装置、电子设备及存储介质 | |
CN114942863A (zh) | 一种级联快照处理方法、装置、设备及存储介质 | |
US20120303879A1 (en) | Memory Device and Method for Programming Flash Memory Utilizing Spare Blocks | |
CN116719724A (zh) | eMMC多平台测试方法和装置、电子设备 | |
CN109086231B (zh) | 输入输出设备的访问方法及装置 | |
CN116302376A (zh) | 进程创建方法、装置、电子设备及计算机可读介质 | |
CN110704091A (zh) | 一种固件升级方法及装置 | |
CN115344198A (zh) | 磁盘的数据读写方法、系统、终端设备及存储介质 | |
CN115712394A (zh) | 数据读写方法、装置、计算机设备及可读存储介质 | |
US11677902B2 (en) | Data processing method and related product | |
CN112882831A (zh) | 一种数据处理方法及装置 | |
CN109144399B (zh) | 一种数据存储方法、装置及电子设备 | |
CN106648751B (zh) | 一种嵌入式软件快速升级的方法及嵌入式设备 | |
CN111158733A (zh) | 一种bmc升级方法、装置、设备及计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |