CN113867969A - 一种内存分块方法、装置、电子设备及存储介质 - Google Patents
一种内存分块方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113867969A CN113867969A CN202111442505.XA CN202111442505A CN113867969A CN 113867969 A CN113867969 A CN 113867969A CN 202111442505 A CN202111442505 A CN 202111442505A CN 113867969 A CN113867969 A CN 113867969A
- Authority
- CN
- China
- Prior art keywords
- memory
- size
- partitioning
- blocks
- pool
- 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
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种内存分块方法、装置、电子设备及存储介质,该内存分块方法包括:获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。本发明实施例能够根据至少一个第一周期的第一内存使用数据所体现的对内存块的使用需求,调整第二周期对目标内存池进行分块的方式,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存分块方法、装置、电子设备及存储介质。
背景技术
内存池(Memory Pool)是一种内存分配方式,又被称为固定大小区块规划(fixed-size-blocks allocation)。内存池是在真正使用内存之前,先申请分配一定数量的、大小相等或不等的内存块留作备用的技术。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。
在现有的内存池方案中,都是采用静态分块的方式,提前规划好数据块长度与数据块的数目,如块的长度有32、64、128、256等,块的数目有100、200、500等,但实际使用中不并清楚上层所需的长度的大小分布,以及相关数目,这样容易导致分配的不均匀,有的块使用率不够,而有的块空余较多,内存池无法得到合理利用。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种内存分块方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种内存分块方法,包括:
获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;
基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;
在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。
可选地,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算接收到内存获取请求最多的高峰时间段、所述高峰时间段内各所述内存获取请求所请求的内存块的多个第一内存块大小及各第一内存块大小所对应的内存获取请求的第一数量;
获取所述第二周期所对应的实际时间段;
若所述实际时间段与所述高峰时间段匹配,按照所述高峰时间段内各所述内存获取请求所请求的内存块的多个第一内存块大小及各第一内存块大小所对应的第一数量确定内存分块策略。
可选地,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算所述目标内存池内不同大小的内存块的使用率;
若一个或多个第二内存块大小的内存块的使用率大于预设第一阈值,将使用率大于预设第一阈值的一个或多个第二内存块大小的内存块增加至与该第二内存块大小对应的第二数量;
若一个或多个第二内存块大小的内存块的使用率小于预设第二阈值,将使用率小于预设第二阈值的一个或多个第二内存块大小的内存块的数量分别减少至与该第二内存块大小对应的第三数量,所述预设第一阈值大于所述预设第二阈值;
按照各内存块的第二内存块大小及各第二内存块大小所对应的数量确定内存分块策略。
可选地,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算所述目标内存池内不同大小的内存块在不同时间段的使用率;
若一个或多个第三内存块大小的内存块在目标时间段的使用率大于预设第三阈值,将使用率大于预设第三阈值的一个或多个第三内存块大小的内存块增加至与该第三内存块大小对应的第四数量;
若一个或多个第三内存块大小的内存块在目标时间段的使用率小于预设第四阈值,将使用率小于预设第四阈值的一个或多个第三内存块大小的内存块的数量分别减少至与该第三内存块大小对应的第五数量,所述预设第三阈值大于所述预设第四阈值;
按照各内存块的第三内存块大小及各第三内存块大小所对应的数量确定与该目标时间段对应的内存分块策略。
可选地,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
获取所述目标内存池中未使用的剩余内存空间;
判断所述剩余内存空间的大小是否大于所述内存分块策略所需的空间大小;
若所述剩余内存空间的大小大于所述内存分块策略所需的空间大小,将所述剩余内存空间按照所述内存分块策略进行分块。
可选地,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
若所述剩余内存空间的大小小于所述内存分块策略所需的空间大小,则计算待扩充的扩充大小;
若所述目标内存池的备用内存空间大于所述扩充大小,从所述目标内存池的备用内存空间中划分出所述扩充大小的补充空间;
将所述补充空间及所述剩余内存空间按照所述内存分块策略进行分块。
可选地,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
若所述目标内存池的备用内存空间小于所述扩充大小,发出内存不足提示。
第二方面,本申请提供了一种内存分块装置,包括:
获取模块,用于获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;
确定模块,用于基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;
分块模块,用于在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。
第三方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的内存分块方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有内存分块方法的程序,所述内存分块方法的程序被处理器执行时实现第一方面任一所述的内存分块方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明实施例能够自动根据至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,确定第二周期的内存分块策略,并在第二周期开始时,按照该内存分块策略对目标内存池进行分块,也即根据至少一个第一周期的第一内存使用数据所体现的对内存块的使用需求,调整第二周期对目标内存池进行分块的方式,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种内存分块方法的流程图;
图2为本申请实施例提供的一种内存分块装置的结构图;
图3为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于在现有的内存池方案中,都是采用静态分块的方式,提前规划好数据块长度与数据块的数目,如块的长度有32、64、128、256等,块的数目有100、200、500等,但实际使用中不并清楚上层所需的长度的大小分布,以及相关数目,这样容易导致分配的不均匀,有的块使用率不够,而有的块空余较多,内存池无法得到合理利用。为此,本申请实施例提供了一种内存分块方法,所述内存分块方法可以应用于计算机中。
如图1所示,所述内存分块方法可以包括以下步骤:
步骤S101,获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据。
在本发明实施例中,第一周期指历史经过的周期,即当前时刻之前的周期,目标内存池包括多个内存块,每个内存块在任一第一周期内均存在对应的使用数据,可以在每个第一周期结束时,将该周期内各内存块的使用数据进行存储,以便于后续使用。所述第一内存使用数据用于指示所述历史经过的任一第一周期内多个内存块的使用情况,也就是说,第一内存使用数据中包括同一第一周期内目标内存池中多个内存块的使用数据;
在该步骤中,可以获取每个第一周期内各内存块的使用数据,得到各第一周期内多个内存块的第一内存使用数据。
步骤S102,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;
在本发明实施例中,第二周期指下一周期,即当前时刻之后的周期,内存分块策略可以包括:将内存池进行分块的多种分块大小及每种分块大小的内存块的数量等,内存分块策略可以指用于对目标内存池中未使用的剩余内存空间的分块策略。
在该步骤中,可以基于预先设置的至少一个所述第一内存使用数据所体现的对各内存块大小的内存块使用需求,确定第二周期的内存分块策略,以满足内存块使用需求。
步骤S103,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。
本发明实施例能够自动根据至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,确定第二周期的内存分块策略,并在第二周期开始时,按照该内存分块策略对目标内存池进行分块,也即根据至少一个第一周期的第一内存使用数据所体现的对内存块的使用需求,调整第二周期对目标内存池进行分块的方式,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
在本发明的又一实施例中,步骤S102基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算接收到内存获取请求最多的高峰时间段、所述高峰时间段内各所述内存获取请求所请求的内存块的多个第一内存块大小及各第一内存块大小所对应的内存获取请求的第一数量;
本发明实施例中,由于第一内存使用数据中包括同一第一周期内目标内存池中多个内存块的使用数据,每个内存块的使用数据可以包括:接收到内存获取请求的时刻、内存获取请求所请求的内存块的内存块大小。
在该步骤中,可以统计接收到内存获取请求的数量最多的时间段,得到高峰时间段,如:每日的19:00-20:00等,统计高峰时间段内各内存获取请求所请求的内存块的内存块大小,得到多个第一内存块大小,如:32字节、64字节、128字节和256字节等,并统计每个第一内存块大小被内存获取请求的数量,得到多个第一数量,如:32字节大小的内存块被内请求的数量为100次,64字节大小的内存块被内请求的数量为200次,128字节大小的内存块被内请求的数量为300次,256字节大小的内存块被内请求的数量为100次等。
获取所述第二周期所对应的实际时间段;
本发明实施例中,实际时间段即在每日24小时内对应的时间段。
在该步骤中,可以依据当前时刻确定第二周期,一般来说,可以在上一周期结束时执行步骤S101,则当前时刻可以为上一个周期结束的时刻,第二周期则为上一周期之后紧邻的周期,所以可以第二周期的起始时刻为当前时刻之后的下一时刻,第二周期的结束时刻可以根据每个周期的预设时长确定。
若所述实际时间段与所述高峰时间段匹配,按照所述高峰时间段内各所述内存获取请求所请求的内存块的多个第一内存块大小及各第一内存块大小所对应的第一数量确定内存分块策略。
在该步骤中,可以在第二周期与计算得到的高峰时间段匹配,则可以按照高峰时间段内各内存块大小及请求数量设置内存分块策略,即按照多个第一内存块大小及每个第一内存块大小被请求的第一数量生成内存分块策略。
本发明实施例能够按照高峰时间段内各内存块大小及请求数量设置内存分块策略,使得在下一次高峰时间段对应的第二周期到来时,目标内存池内各内存块大小的数量能够满足使用需求,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
在本发明的又一实施例中,步骤S102基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算所述目标内存池内不同大小的内存块的使用率;
本发明实施例中,由于第一内存使用数据中包括同一第一周期内目标内存池中多个内存块的使用数据,每个内存块的使用数据可以包括:每个内存块大小的内存块的总数量及每个内存块大小的所有内存块中被请求使用的内存块的数量。
在该步骤中,可以将每个内存块大小的已使用的内存块的数量除以该内存块大小的内存块的总数量,得到至少一个第一周期内每种内存块大小的内存块的使用率。
若一个或多个第二内存块大小的内存块的使用率大于预设第一阈值,将使用率大于预设第一阈值的一个或多个第二内存块大小的内存块增加至与该第二内存块大小对应的第二数量;
本发明实施例中,预设第一阈值用于筛选使用率过大的内存块大小的内存块。
在至少一个第一周期内一个或多个第二内存块大小的内存块的使用率过大时,可以将使用率过大的第二内存块大小的内存块的数量进行增加,在实际应用中,可以根据实际情况预先设置增加至的第二数量。
可以预先为目标内存池设置对应的备用内存空间,增加的第二内存块大小的内存块可以来源于备用内存空间。
若一个或多个第二内存块大小的内存块的使用率小于预设第二阈值,将使用率小于预设第二阈值的一个或多个第二内存块大小的内存块的数量分别减少至与该第二内存块大小对应的第三数量;
本发明实施例中,预设第二阈值用于筛选使用率过小的内存块大小的内存块,所述预设第一阈值大于所述预设第二阈值;
在至少一个第一周期内一个或多个第二内存块大小的内存块的使用率过小时,可以将使用率较小的第二内存块大小的内存块的数量进行缩减,缩减至第三数量,在实际应用中,可以根据实际情况预先设置缩减至的第三数量。
可以预先为目标内存池设置对应的备用内存空间,缩减的第二内存块大小的内存块可以加入备用内存空间中。
按照各内存块的第二内存块大小及各第二内存块大小所对应的数量确定内存分块策略。
在该步骤中,在调整完不同第二内存块大小的内存块的数量后,可以按照调整后各内存块大小的数量设置内存分块策略,即按照多个第二内存块大小及每个第二内存块大小被调整后的数量生成内存分块策略。
本发明实施例能够按照调整后的各内存块大小的数量设置内存分块策略,使得在第二周期到来时,目标内存池内各内存块大小的数量能够满足使用需求,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
在本发明的又一实施例中,步骤S102基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算所述目标内存池内不同大小的内存块在不同时间段的使用率;
本发明实施例中,由于第一内存使用数据中包括同一第一周期内目标内存池中多个内存块的使用数据,每个内存块的使用数据可以包括:接收到内存获取请求的时刻、每个内存块大小的内存块的总数量及每个内存块大小的所有内存块中被请求使用的内存块的数量。
在该步骤中,可以将不同时间段内,至少一个第一周期中,每个内存块大小的已使用的内存块的数量除以该内存块大小的内存块的总数量,得到不同时间段内,至少一个第一周期中每种内存块大小的内存块的使用率。
若一个或多个第三内存块大小的内存块在目标时间段的使用率大于预设第三阈值,将使用率大于预设第三阈值的一个或多个第三内存块大小的内存块增加至与该第三内存块大小对应的第四数量;
本发明实施例中,预设第三阈值用于筛选使用率过大的内存块大小的内存块。
在至少一个第一周期内一个或多个第三内存块大小的内存块在目标时间段的的使用率过大时,可以将使用率过大的第三内存块大小的内存块的数量进行增加,在实际应用中,可以根据实际情况预先设置增加至的第四数量。
可以预先为目标内存池设置对应的备用内存空间,增加的第三内存块大小的内存块可以来源于备用内存空间。
若一个或多个第三内存块大小的内存块在目标时间段的使用率小于预设第四阈值,将使用率小于预设第四阈值的一个或多个第三内存块大小的内存块的数量分别减少至与该第三内存块大小对应的第五数量,所述预设第三阈值大于所述预设第四阈值;
本发明实施例中,预设第四阈值用于筛选使用率过小的内存块大小的内存块,所述预设第四阈值大于所述预设第三阈值;
在至少一个第一周期内一个或多个第三内存块大小的内存块在目标时间段的使用率过小时,可以将使用率较小的第三内存块大小的内存块的数量进行缩减,缩减至第五数量,在实际应用中,可以根据实际情况预先设置缩减至的第五数量。
可以预先为目标内存池设置对应的备用内存空间,缩减的第三内存块大小的内存块可以加入备用内存空间中。
按照各内存块的第三内存块大小及各第三内存块大小所对应的数量确定与该目标时间段对应的内存分块策略。
在该步骤中,在调整完不同第三内存块大小的内存块的数量后,可以按照调整后各内存块大小的数量设置内存分块策略,即按照多个第三内存块大小及每个第三内存块大小被调整后的数量生成内存分块策略。
本发明实施例能够按照调整后的各内存块大小的数量设置内存分块策略,使得在与目标时间段对应的第二周期到来时,目标内存池内各内存块大小的数量能够满足使用需求,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
在本发明的又一实施例中,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
获取所述目标内存池中未使用的剩余内存空间;
由于实际应用中,目标内存池中可能会长期存储有一些数据,所以,在所述第二周期的开始时刻,本申请可以获取当前未使用的剩余内存空间,以便于对剩余内存空间进行分块。
判断所述剩余内存空间的大小是否大于所述内存分块策略所需的空间大小;
在该步骤中,可以首先计算按照内存分块策略进行分块所需的空间大小,内存分块策略所需的空间大小可以为每个内存块大小乘以对应的数量的和,然后将剩余内存空间的大小与内存分块策略所需的空间大小进行比较。
若所述剩余内存空间的大小大于所述内存分块策略所需的空间大小,将所述剩余内存空间按照所述内存分块策略进行分块。
本发明实施例能够按照内存分块策略对目标内存池进行分块,使得在第二周期到来时,目标内存池内各内存块大小的数量能够满足使用需求,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
在本发明的又一实施例中,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
若所述剩余内存空间的大小小于所述内存分块策略所需的空间大小,则计算待扩充的扩充大小;
由于实际应用中,目标内存池中的剩余内存空间可能会小于内存分块策略所需的空间大小,这样,为了满足使用需求,需要对目标内存池进行扩充大小。
在该步骤中,可以计算内存分块策略所需的空间大小,将内存分块策略所需的空间大小减去剩余内存空间的大小,即可得到待扩充的扩充大小。
若所述目标内存池的备用内存空间大于所述扩充大小,从所述目标内存池的备用内存空间中划分出所述扩充大小的补充空间;
本发明实施例中,可以预先设置备用内存空间,以用于在目标内存池的空间不足时,对目标内存池进行扩充。
将所述补充空间及所述剩余内存空间按照所述内存分块策略进行分块。
在该步骤中,可以将补充空间和剩余内存空间合并,合并后的空间按照内存分块策略进行分块。
本发明实施例能够按照内存分块策略对补充空间及剩余内存空间进行分块,使得在第二周期到来时,目标内存池内各内存块大小的数量能够满足使用需求,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
在本发明的又一实施例中,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
若所述目标内存池的备用内存空间小于所述扩充大小,发出内存不足提示。
本发明实施例能够在备用内存空间也不足时,发出内存不足提示,以便于用户及时清理目标内存池中已使用的内存空间,为后续进行内存池分块做准备,便于使目标内存池中的资源被合理利用。
在本发明的又一实施例中,还提供一种内存分块装置,如图2所示,包括:
获取模块11,用于获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;
确定模块12,用于基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;
分块模块13,用于在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。
在本发明的又一实施例中,还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现前述任一方法实施例所述的内存分块方法。
本发明实施例提供的电子设备,处理器通过执行存储器上所存放的程序实现了获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,本发明实施例能够自动根据至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,确定第二周期的内存分块策略,并在第二周期开始时,按照该内存分块策略对目标内存池进行分块,也即根据至少一个第一周期的第一内存使用数据所体现的对内存块的使用需求,调整第二周期对目标内存池进行分块的方式,实现按需分块,使目标内存池的各种内存块大小的内存块的使用率均衡,进而使目标内存池中的资源被合理利用。
上述电子设备提到的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明的又一实施例中,还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有内存分块方法的程序,所述内存分块方法的程序被处理器执行时实现前述任一方法实施例所述的内存分块方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种内存分块方法,其特征在于,包括:
获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;
基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;
在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。
2.根据权利要求1所述的内存分块方法,其特征在于,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算接收到内存获取请求最多的高峰时间段、所述高峰时间段内各所述内存获取请求所请求的内存块的多个第一内存块大小及各第一内存块大小所对应的内存获取请求的第一数量;
获取所述第二周期所对应的实际时间段;
若所述实际时间段与所述高峰时间段匹配,按照所述高峰时间段内各所述内存获取请求所请求的内存块的多个第一内存块大小及各第一内存块大小所对应的第一数量确定内存分块策略。
3.根据权利要求1所述的内存分块方法,其特征在于,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算所述目标内存池内不同大小的内存块的使用率;
若一个或多个第二内存块大小的内存块的使用率大于预设第一阈值,将使用率大于预设第一阈值的一个或多个第二内存块大小的内存块增加至与该第二内存块大小对应的第二数量;
若一个或多个第二内存块大小的内存块的使用率小于预设第二阈值,将使用率小于预设第二阈值的一个或多个第二内存块大小的内存块的数量分别减少至与该第二内存块大小对应的第三数量,所述预设第一阈值大于所述预设第二阈值;
按照各内存块的第二内存块大小及各第二内存块大小所对应的数量确定内存分块策略。
4.根据权利要求1所述的内存分块方法,其特征在于,基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略,包括:
基于至少一个所述第一内存使用数据计算所述目标内存池内不同大小的内存块在不同时间段的使用率;
若一个或多个第三内存块大小的内存块在目标时间段的使用率大于预设第三阈值,将使用率大于预设第三阈值的一个或多个第三内存块大小的内存块增加至与该第三内存块大小对应的第四数量;
若一个或多个第三内存块大小的内存块在目标时间段的使用率小于预设第四阈值,将使用率小于预设第四阈值的一个或多个第三内存块大小的内存块的数量分别减少至与该第三内存块大小对应的第四数量,所述预设第三阈值大于所述预设第四阈值;
按照各内存块的第三内存块大小及各第三内存块大小所对应的数量确定与该目标时间段对应的内存分块策略。
5.根据权利要求1所述的内存分块方法,其特征在于,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
获取所述目标内存池中未使用的剩余内存空间;
判断所述剩余内存空间的大小是否大于所述内存分块策略所需的空间大小;
若所述剩余内存空间的大小大于所述内存分块策略所需的空间大小,将所述剩余内存空间按照所述内存分块策略进行分块。
6.根据权利要求5所述的内存分块方法,其特征在于,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
若所述剩余内存空间的大小小于所述内存分块策略所需的空间大小,则计算待扩充的扩充大小;
若所述目标内存池的备用内存空间大于所述扩充大小,从所述目标内存池的备用内存空间中划分出所述扩充大小的补充空间;
将所述补充空间及所述剩余内存空间按照所述内存分块策略进行分块。
7.根据权利要求6所述的内存分块方法,其特征在于,在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块,包括:
若所述目标内存池的备用内存空间小于所述扩充大小,发出内存不足提示。
8.一种内存分块装置,其特征在于,包括:
获取模块,用于获取至少一个第一周期内目标内存池中多个内存块的第一内存使用数据,所述第一内存使用数据用于指示所述第一周期内多个内存块的使用情况;
确定模块,用于基于至少一个所述第一内存使用数据确定第二周期内对内存池进行分块的内存分块策略;
分块模块,用于在所述第二周期的开始时刻,按照所述内存分块策略将所述目标内存池进行分块。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1~7任一所述的内存分块方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有内存分块方法的程序,所述内存分块方法的程序被处理器执行时实现权利要求1-7任一所述的内存分块方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111442505.XA CN113867969A (zh) | 2021-11-30 | 2021-11-30 | 一种内存分块方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111442505.XA CN113867969A (zh) | 2021-11-30 | 2021-11-30 | 一种内存分块方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113867969A true CN113867969A (zh) | 2021-12-31 |
Family
ID=78985428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111442505.XA Pending CN113867969A (zh) | 2021-11-30 | 2021-11-30 | 一种内存分块方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113867969A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747343A (zh) * | 2014-01-09 | 2014-04-23 | 深圳Tcl新技术有限公司 | 资源分时段推荐的方法和装置 |
CN109144712A (zh) * | 2017-06-19 | 2019-01-04 | 北京信威通信技术股份有限公司 | 内存池构建、内存分配方法及装置 |
CN110674052A (zh) * | 2019-09-30 | 2020-01-10 | 广州虎牙科技有限公司 | 内存管理方法、服务器及可读存储介质 |
CN113076266A (zh) * | 2021-06-04 | 2021-07-06 | 深圳华云信息系统有限公司 | 一种内存管理方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-30 CN CN202111442505.XA patent/CN113867969A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747343A (zh) * | 2014-01-09 | 2014-04-23 | 深圳Tcl新技术有限公司 | 资源分时段推荐的方法和装置 |
CN109144712A (zh) * | 2017-06-19 | 2019-01-04 | 北京信威通信技术股份有限公司 | 内存池构建、内存分配方法及装置 |
CN110674052A (zh) * | 2019-09-30 | 2020-01-10 | 广州虎牙科技有限公司 | 内存管理方法、服务器及可读存储介质 |
CN113076266A (zh) * | 2021-06-04 | 2021-07-06 | 深圳华云信息系统有限公司 | 一种内存管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832126B (zh) | 一种线程的调整方法及其终端 | |
CN109375985B (zh) | 内存动态管理方法及装置 | |
CN107480078B (zh) | 一种总线带宽分配方法、装置及芯片 | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN107343023B (zh) | 一种Mesos管理集群中的资源分配方法、装置及电子设备 | |
US20180314435A1 (en) | Deduplication processing method, and storage device | |
CN110599148B (zh) | 集群数据处理方法、装置、计算机集群及可读存储介质 | |
CN107894922B (zh) | Ram资源分配方法 | |
CN111049756A (zh) | 请求响应方法、装置、电子设备及计算机可读存储介质 | |
CN111338575B (zh) | 一种存储服务质量控制方法、装置、设备及存储介质 | |
CN113691596B (zh) | 一种网关控制方法、装置、电子设备及存储介质 | |
CN107533435A (zh) | 存储空间的分配方法及存储设备 | |
US11385814B2 (en) | Method and device for allocating resource of hard disk in distributed storage system | |
CN108241535B (zh) | 资源管理的方法、装置及服务器设备 | |
CN113867969A (zh) | 一种内存分块方法、装置、电子设备及存储介质 | |
CN111143071A (zh) | 基于mcs系统的缓存分区管理方法、系统及相关组件 | |
CN108845860B (zh) | 一种quota管理方法、装置及电子设备 | |
CN113992586A (zh) | 流量控制方法、装置、计算机设备和存储介质 | |
CN113076266B (zh) | 一种内存管理方法、装置、电子设备及存储介质 | |
CN114866563A (zh) | 扩容方法、装置、系统和存储介质 | |
CN110891033A (zh) | 网络资源处理方法、装置、网关、控制器及存储介质 | |
CN113806050A (zh) | 一种计算资源的处理方法、装置、电子设备及存储介质 | |
CN114490030A (zh) | 自适应动态redis连接池的实现方法及装置 | |
CN110708374B (zh) | 一种边缘节点的分配方法、分配装置及可读存储介质 | |
CN109246216B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211231 |
|
RJ01 | Rejection of invention patent application after publication |