一种内存分配控制方法、装置、设备及存储介质制造方法及图纸

技术编号:28465052 阅读:14 留言:0更新日期:2021-05-15 21:30
本申请公开了一种内存分配控制方法,该方法包括以下步骤:接收申请方发送的内存申请,内存申请中携带申请内存大小的信息;遍历空闲内存块列表,查找总内存大小与申请内存大小相同的空闲内存块;在查找到的空闲内存块中分配内存给申请方。应用本申请所提供的技术方案,可以尽量避免内存碎片的产生,缓解资源紧张的问题。本申请还公开了一种内存分配控制装置、设备及存储介质,具有相应技术效果。具有相应技术效果。具有相应技术效果。

【技术实现步骤摘要】
一种内存分配控制方法、装置、设备及存储介质


[0001]本申请涉及计算机应用
,特别是涉及一种内存分配控制方法、装置、设备及存储介质。

技术介绍

[0002]随着计算机技术的快速发展,工业现场自动化、智能化的发展速度也越来越快,业务组态对DCS(Distributed Control System,分布式控制系统)等组态软件提出了更高的要求,比如,对实时调试、增量下装等功能的需求更加强烈。频繁修改逻辑、增删变量进行增量下装等操作需要不断进行内存申请。
[0003]目前,在进行控制系统的内存分配时,会随机找到一个总内存大小大于申请内存大小的空闲内存块进行内存分配,容易产生内存碎片,而内存碎片的增多将会加重资源紧张的问题。
[0004]所以,如何进行内存分配控制,尽量减少内存碎片的产生,是目前本领域技术人员急需解决的技术问题。

技术实现思路

[0005]本申请的目的是提供一种内存分配控制方法、装置、设备及存储介质,以尽量减少内存碎片的产生,缓解资源紧张问题。
[0006]为解决上述技术问题,本申请提供如下技术方案:
[0007]一种内存分配控制方法,包括:
[0008]接收申请方发送的内存申请,所述内存申请中携带申请内存大小的信息;
[0009]遍历空闲内存块列表,查找总内存大小与所述申请内存大小相同的空闲内存块;
[0010]在查找到的空闲内存块中分配内存给所述申请方。
[0011]在本申请的一种具体实施方式中,在所述遍历空闲内存块列表之后,还包括:
[0012]如果未查找到总内存大小与所述申请内存大小相同的空闲内存块,则根据所述申请内存大小,确定待分配集合,所述待分配集合中的每个空闲内存块的总内存大小与所述申请内存大小的比值大于设定比例阈值;
[0013]在所述待分配集合中选择一个空闲内存块,分配内存给所述申请方。
[0014]在本申请的一种具体实施方式中,所述在所述待分配集合中选择一个空闲内存块,分配内存给所述申请方,包括:
[0015]在所述待分配集合中选择总内存大小最大的空闲内存块,分配内存给所述申请方。
[0016]在本申请的一种具体实施方式中,还包括:
[0017]获得回收内存块;
[0018]根据所述回收内存块的地址,确定所述空闲内存块列表中是否存在地址连续的内存块;
[0019]如果存在,则将所述地址连续的内存块进行合并处理。
[0020]在本申请的一种具体实施方式中,所述空闲内存块列表中的空闲内存块按照地址前后顺序排列。
[0021]在本申请的一种具体实施方式中,所述申请方为结构体对象,所述内存申请中携带所述结构体对象包含的每个字段的申请内存大小的信息;
[0022]所述查找总内存大小与所述申请内存大小相同的空闲内存块,包括:
[0023]针对所述结构体对象包含的每个字段,查找总内存大小与当前字段的申请内存大小相同的空闲内存块;
[0024]相应的,所述将查找到的空闲内存块分配给所述申请方,包括:
[0025]针对所述结构体对象包含的每个字段,将查找到的总内存大小与当前字段的申请内存大小相同的空闲内存块的内存分配给当前字段。
[0026]一种内存分配控制装置,包括:
[0027]内存申请接收模块,用于接收申请方发送的内存申请,所述内存申请中携带申请内存大小的信息;
[0028]空闲内存块查找模块,用于遍历空闲内存块列表,查找总内存大小与所述申请内存大小相同的空闲内存块;
[0029]内存分配模块,用于在查找到的空闲内存块中分配内存给所述申请方。
[0030]在本申请的一种具体实施方式中,所述内存分配模块,还用于:
[0031]在所述遍历空闲内存块列表之后,如果未查找到总内存大小与所述申请内存大小相同的空闲内存块,则根据所述申请内存大小,确定待分配集合,所述待分配集合中的每个空闲内存块的总内存大小与所述申请内存大小的比值大于设定比例阈值;
[0032]在所述待分配集合中选择一个空闲内存块,分配内存给所述申请方。
[0033]一种内存分配控制设备,包括:
[0034]存储器,用于存储计算机程序;
[0035]处理器,用于执行所述计算机程序时实现上述任一项所述内存分配控制方法的步骤。
[0036]一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述内存分配控制方法的步骤。
[0037]应用本申请实施例所提供的技术方案,在接收到申请方发送的内存申请时,遍历空闲内存块列表,查找总内存大小与申请内存大小相同的空闲内存块,在查找到的空闲内存块中分配内存给申请方,这样可以尽量避免内存碎片的产生,缓解资源紧张的问题。
附图说明
[0038]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本申请实施例中一种内存分配控制方法的实施流程图;
[0040]图2为本申请实施例中空闲内存块列表的一种示意图;
[0041]图3为本申请实施例中空闲内存块列表的另一种示意图;
[0042]图4为本申请实施例中空闲内存块列表的另一种示意图;
[0043]图5为本申请实施例中进行回收合并处理的空闲内存块列表的示意图;
[0044]图6为本申请实施例中不做回收合并处理的空闲内存块列表的示意图;
[0045]图7为本申请实施例中一种内存分配控制装置的结构示意图;
[0046]图8为本申请实施例中一种内存分配控制设备的结构示意图。
具体实施方式
[0047]本申请的核心是提供一种内存分配控制方法,通过对内存分配控制,尽量减少内存碎片的产生。实际上,内存碎片不只是在控制系统中存在,在上位机中也有涉及。上位机是控制系统的逻辑组态软件,主要进行控制逻辑的编写组态。
[0048]在本申请中,接收到申请方发送的内存申请后,遍历空闲内存块列表,查找总内存大小与申请内存大小相同的空闲内存块,在查找到的空闲内存块中分配内存给申请方。也就是查找到刚好的可利用的空闲内存块进行内存分配,可以尽量减少内存碎片的产生,缓解资源紧张问题。
[0049]为了使本
的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050]参见图1所示,为本申请实施例所提供的一种控制系统的内存分配方法的实施流程图,该方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配控制方法,其特征在于,包括:接收申请方发送的内存申请,所述内存申请中携带申请内存大小的信息;遍历空闲内存块列表,查找总内存大小与所述申请内存大小相同的空闲内存块;在查找到的空闲内存块中分配内存给所述申请方。2.根据权利要求1所述的方法,其特征在于,在所述遍历空闲内存块列表之后,还包括:如果未查找到总内存大小与所述申请内存大小相同的空闲内存块,则根据所述申请内存大小,确定待分配集合,所述待分配集合中的每个空闲内存块的总内存大小与所述申请内存大小的比值大于设定比例阈值;在所述待分配集合中选择一个空闲内存块,分配内存给所述申请方。3.根据权利要求2所述的方法,其特征在于,所述在所述待分配集合中选择一个空闲内存块,分配内存给所述申请方,包括:在所述待分配集合中选择总内存大小最大的空闲内存块,分配内存给所述申请方。4.根据权利要求1所述的方法,其特征在于,还包括:获得回收内存块;根据所述回收内存块的地址,确定所述空闲内存块列表中是否存在地址连续的内存块;如果存在,则将所述地址连续的内存块进行合并处理。5.根据权利要求4所述的方法,其特征在于,所述空闲内存块列表中的空闲内存块按照地址前后顺序排列。6.根据权利要求1至5之中任一项所述的方法,其特征在于,所述申请方为结构体对象,所述内存申请中携带所述结构体对象包含的每个字段的申请内存大小的信息;所述查找总内存大小与所述申请内存大小相同的空闲内存块,包括:针对所述...

【专利技术属性】
技术研发人员:赵利平方垒兰文华张玉波严寒青
申请(专利权)人:杭州和利时自动化有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1