内存管理方法、装置及存储介质制造方法及图纸

技术编号:21089196 阅读:24 留言:0更新日期:2019-05-11 09:49
本申请提出了一种内存管理方法、装置及存储介质,涉及计算机技术领域,该方法中,通过为每一内存节点分配两个以上不同的内存节点标识,并记录目标内存节点在被分配给业务使用时,发送给业务的目标内存节点的标识为目标内存节点当前标识,以使内存管理系统在获得释放该目标内存节点的请求时,根据内存释放请求包含的内存节点标识与所述目标内存节点当前标识是否相同,来确定发送所述内存释放请求的业务出现内存重复释放的错误,相比于现有技术,使内存管理系统在释放目标内存节点时,根据发送给业务的内存节点当前标识,判定业务是否发生了内存重复释放的错误,能够提升定位发生内存重复释放的业务程序的准确率。

【技术实现步骤摘要】
内存管理方法、装置及存储介质
本申请涉及计算机
,具体而言,涉及一种内存管理方法、装置及存储介质。
技术介绍
在软件开发过程中,一般需要向内存申请分配多个大小相等的内存节点构成内存池,并配置相应的内存管理系统对内存池进行管理。当软件开发有新的内存需求时,业务模块就向内存管理系统提出申请,内存管理系统则将内存池中的一部分内存节点分配给业务模块使用,使得业务模块在申请使用内存时提高分配效率。如果业务模块申请的一个内存节点使用结束,需要向内存管理系统发送内存释放请求,释放该内存节点,以提高内存资源的利用率,进而提升系统性能。然而,若内存管理系统接收到某个业务模块向内存管理系统发送的内存释放请求,欲释放一个该业务已经释放过,但当前未被该业务申请使用的内存节点,这种错误即为内存重复释放。
技术实现思路
本申请的目的在于提供一种内存管理方法、装置及存储介质,能够提升定位发生内存重复释放的业务程序的准确率。为了实现上述目的,本申请实施例采用的技术方案如下:第一方面,本申请实施例提供一种内存管理方法,应用于对内存池进行管理的内存管理系统,所述内存池中的每一内存节点均预先分配有两个以上不同的内存节点标识,所述方法包括:接收第一业务发送的内存使用请求;在所述内存池中确定出分配给所述第一业务使用的目标内存节点;在所述目标内存节点对应分配的两个以上不同的内存节点标识中选取一内存节点标识为目标内存节点当前标识并发送给所述第一业务,其中,该目标内存节点当前标识,与所述目标内存节点上次被分配使用时所选取的内存节点标识不同;记录所述目标内存节点当前标识,并记录所述目标内存节点为使用状态。第二方面,本申请实施例提供一种内存管理装置,应用于对内存池进行管理的内存管理系统,所述内存池中每一内存节点均预先分配有两个以上不同的内存节点标识,所述装置包括:接收模块,用于接收第一业务发送的内存使用请求;处理模块,用于在所述内存池中确定出分配给所述第一业务使用的目标内存节点;在所述目标内存节点对应分配的两个以上不同的内存节点标识中选取一内存节点标识为目标内存节点当前标识并发送给所述第一业务,其中,该目标内存节点当前标识,与所述目标内存节点上次被分配使用时所选取的内存节点标识不同;记录模块,用于记录所述目标内存节点当前标识,并记录所述目标内存节点为使用状态。第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的内存管理方法。本申请实施例所提供的一种内存管理方法、装置及存储介质,通过为每一内存节点分配两个以上不同的内存节点标识,并记录目标内存节点当前被分配给业务使用时,发送给业务的目标内存节点的标识为当前标识,以使内存管理系统在获得释放该目标内存节点的请求时,根据该目标内存节点的当前标识进行释放,相比于现有技术,本申请提供的方法,使内存管理系统在释放目标内存节点时,根据发送给业务的内存节点当前标识,判定业务是否发生了内存重复释放的错误,能够提升定位发生内存重复释放的业务程序的准确率。为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。图1为一种内存重复释放检测方法的应用场景示意图;图2为本申请实施例所提供的一种电子设备的示意性结构框图;图3为一种内存节点的示意图;图4为本申请实施例所提供的一种内存管理方法的示意性流程图;图5为一种内存管理系统在释放目标内存节点时的示意性流程图;图6为另一种内存管理系统在释放目标内存节点时的示意性流程图;图7为本申请实施例所提供的另一种内存管理方法的示意性流程图;图8为再一种内存管理系统在释放目标内存节点时的示意性流程图;图9为本申请实施例所提供的一种内存管理装置的示意性结构框图。图中:100-电子设备;101-存储器;102-处理器;300-内存管理装置;301-接收模块;302-处理模块;303-记录模块。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。对于内存重复释放的错误,一般采用在内存节点中标记使用状态的方式进行检测。例如,请参阅图1,图1为一种内存重复释放检测方法的应用场景示意图,以包含业务A和业务B两个业务模块的软件开发流程为例进行说明,内存池由内存管理系统进行管理,且内存池中包括有内存节点甲和内存节点乙两个内存节点,内存节点甲和内存节点乙各自具有表征使用状态的标记;假定,若标记的信息为1,则表征内存节点当前处于被使用的状态,若标记的信息为0,则表征内存节点当前处于未被使用的状态。业务A在向内存管理系统申请使用内存时,假定内存管理系统将内存节点甲分配给业务A使用,则将内存节点甲的标记的信息由0更新为1;业务A使用结束后,向内存管理系统请求释放内存节点甲,内存管理系统此时再将内存节点甲标记的信息由1更新为0,此为一个完整的申请使用并释放内存节点的过程;而当业务B向内存管理系统申请使用内存时,若内存管理系统将内存节点甲分配给业务B使用,内存管理系统将内存节点甲的标记的信息由0更新为1,表征内存节点甲当前处于被使用的状态;但若业务A的程序编译存在错误,存在异常代码,在业务B使用内存节点甲时,业务A向内存管理系统发送请求释放内存节点甲,内存管理系统根据所获得的请求以及内存节点甲标记的信息为1,认为在正常释放内存节点甲,将内存节点甲标记的信息由1更新为0;然而,业务B正常使用内存节点甲结束后,向内存管理系统本文档来自技高网...

【技术保护点】
1.一种内存管理方法,其特征在于,应用于对内存池进行管理的内存管理系统,所述内存池中的每一内存节点均预先分配有两个以上不同的内存节点标识,所述方法包括:接收第一业务发送的内存使用请求;在所述内存池中确定出分配给所述第一业务使用的目标内存节点;在所述目标内存节点对应分配的两个以上不同的内存节点标识中选取一内存节点标识为目标内存节点当前标识并发送给所述第一业务,其中,该目标内存节点当前标识,与所述目标内存节点上次被分配使用时所选取的内存节点标识不同;记录所述目标内存节点当前标识,并记录所述目标内存节点为使用状态。

【技术特征摘要】
1.一种内存管理方法,其特征在于,应用于对内存池进行管理的内存管理系统,所述内存池中的每一内存节点均预先分配有两个以上不同的内存节点标识,所述方法包括:接收第一业务发送的内存使用请求;在所述内存池中确定出分配给所述第一业务使用的目标内存节点;在所述目标内存节点对应分配的两个以上不同的内存节点标识中选取一内存节点标识为目标内存节点当前标识并发送给所述第一业务,其中,该目标内存节点当前标识,与所述目标内存节点上次被分配使用时所选取的内存节点标识不同;记录所述目标内存节点当前标识,并记录所述目标内存节点为使用状态。2.如权利要求1所述的方法,其特征在于,所述方法还包括:接收第二业务发送的内存释放请求,其中,所述内存释放请求中包含所述第二业务接收的分配给自身的目标内存节点的内存节点标识;判断所述内存释放请求包含的内存节点标识与所述目标内存节点当前标识是否相同;若所述内存释放请求包含的内存节点标识与所述目标内存节点当前标识不同,则确定发送所述内存释放请求的业务出现内存重复释放的错误。3.如权利要求2所述的方法,其特征在于,在所述判断所述内存释放请求包含的内存节点标识与所述目标内存节点当前标识是否相同的步骤之前,所述方法还包括:判断所述目标内存节点是否为使用状态;若所述目标内存节点为使用状态,则判断所述内存释放请求包含的内存节点标识与所述目标内存节点当前标识是否相同;若所述目标内存节点为未使用状态,则确定发送所述内存释放请求的业务出现内存重复释放错误。4.如权利要求2或3所述的方法,其特征在于,所述内存使用请求中包含有用于标识业务的目标业务标识;在所述内存池中确定出分配给所述业务使用的目标内存节点之后,所述方法还包括:记录所述目标业务标识;所述方法还包括:若所述内存释放请求包含的内存节点标识与所述目标内存节点当前标识相同,进一步判断所述内存释放请求包含的业务标识与所述目标业务标识是否相同;若所述内存释放请求包含的业务标识与所述目标业务标识不同,则确定发送所述内存释放请求的业务出现内存重复释放错误。5.如权利要求1所述的方法,其特征在于,所述不同的内存节点标识为不同的内存地址;所述选取一内存节点标识为目标内存节点当前标识,包括:轮流选取所述目标内存节点对应分配的两个以上不同的内存地址。6.一种内存管理装置,其特征在于,应用于对内存池进行管理的内存管理系统,所述内存池中每一内存节点...

【专利技术属性】
技术研发人员:杨波
申请(专利权)人:新华三技术有限公司成都分公司
类型:发明
国别省市:四川,51

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

1