内存释放方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34927412 阅读:29 留言:0更新日期:2022-09-15 07:21
本发明专利技术实施例提供了一种内存释放方法、装置、电子设备及存储介质,涉及内存管理技术领域。方法包括:响应第一应用程序发送的内存释放请求,内存释放请求包括第一内存块的地址范围;根据地址范围,确定第一内存块,并将第一内存块释放;判断第一内存块是否重复释放;若是,则将第一内存块标记为重复释放内存块,以避免第一内存块被再次分配给应用程序;若否,则将第一内存块标记为空闲内存块。由于将确定出的重复释放的内存块标记为重复释放内存块,从而避免了该内存块再次分配给应用程序以及再次被释放而导致内存崩溃的情况。被释放而导致内存崩溃的情况。被释放而导致内存崩溃的情况。

【技术实现步骤摘要】
内存释放方法、装置、电子设备及存储介质


[0001]本专利技术涉及内存管理
,具体而言,涉及一种内存释放方法、装置、电子设备及存储介质。

技术介绍

[0002]在应用程序运行时,应用程序会向系统申请内存的使用权限,在申请得到的内存中存储变量等数据,在应用程序不再需要这些数据时,会像系统发送内存释放请求,系统响应内存释放请求,将对应的内存释放,使得释放的内存能够被再次利用。
[0003]当内存没有被正确释放时,应用程序再次申请该内存,容易导致系统崩溃。因此,如何有效释放、避免系统崩溃,是亟待解决的问题。

技术实现思路

[0004]本专利技术的目的包括,例如,提供了一种内存释放方法,其能够在响应应用程序的内存释放请求,并将相应的内存块释放之后,若确定该内存块重复释放,则将给内存块标记为重复释放内存块,以避免第一内存块被再次分配给应用程序导致内存崩溃。
[0005]为了实现上述目的,本专利技术实施例采用的技术方案如下:
[0006]第一方面,本专利技术实施例提供了一种内存释放方法,其特征在于,应用于电子设备,包括:
[0007]响应第一应用程序发送的内存释放请求,所述内存释放请求包括第一内存块的地址范围;
[0008]根据所述地址范围,确定所述第一内存块,并将所述第一内存块释放;
[0009]判断所述第一内存块是否重复释放;
[0010]若是,则将所述第一内存块标记为重复释放内存块,以避免所述第一内存块被再次分配给应用程序;
[0011]若否,则将所述第一内存块标记为空闲内存块。
[0012]在一种可能的实施方式中,所述第一内存块包括初始内存释放值,所述初始内存释放值表征所述第一内存块连续释放的次数;
[0013]所述判断所述第一内存块是否重复释放的步骤,包括:
[0014]将所述初始内存释放值加1,得到目标内存释放值;
[0015]若所述目标内存释放值大于预设值,则表征所述第一内存块重复释放;其中,所述预设值表征所述内存块重复释放时对应的连续释放次数;
[0016]若所述目标内存释放值小于或等于所述预设值,则表征所述第一内存块未重复释放。
[0017]在一种可能的实施方式中,所述方法还包括:
[0018]响应第二应用程序发送的内存分配请求,所述内存分配请求包括内存地址大小;
[0019]判断是否存在满足所述内存地址大小的空闲内存块;
[0020]若是,则在任意一个所述空闲内存块中为所述第二应用程序分配第二内存块;
[0021]若否,则从所有所述重复释放内存块中,确定出至少一个目标内存块,并利用预设回收算法对每个所述目标内存块均进行回收,得到每个回收内存块,以及在所有所述回收内存块中为所述第二应用程序分配所述第二内存块;
[0022]将所述第二内存块的初始内存释放值置为0。
[0023]在一种可能的实施方式中,所述电子设备预先存储有日志表,所述日志表包括每个内存块的地址范围和每个所述地址范围对应的累计释放次数;
[0024]所述从所有所述重复释放内存块中,确定出至少一个目标内存块的步骤,包括:
[0025]根据每个所述重复释放内存块的地址范围,从所述日志表中确定出每个所述重复释放内存块的累计释放次数;
[0026]计算所述重复释放内存块的当次释放次数阈值;
[0027]将每个所述累计释放次数大于1,且小于或等于所述当次释放次数阈值的重复释放内存块均作为所述目标内存块。
[0028]在一种可能的实施方式中,所述日志表还包括所述电子设备对重复释放内存块进行回收的历史回收次数;所述计算所述重复释放内存块的当次释放次数阈值的步骤,包括:
[0029]从所述日志表中获取所述历史回收次数;
[0030]根据所述历史回收次数和预设释放次数阈值,利用预设公式k=2^n
×
k0计算得到所述当次释放次数阈值;其中所述预设释放阈值表征所述电子设备对重复释放内存块进行第一次回收时对应的释放次数阈值;
[0031]其中,k为所述当次释放次数阈值,n为所述历史回收次数,k0为所述预设释放次数阈值。
[0032]第二方面,本专利技术实施例还提供了一种内存释放装置,应用于电子设备,所述内存释放装置包括:
[0033]响应模块,用于响应第一应用程序发送的内存释放请求,所述内存释放请求包括第一内存块的地址范围;
[0034]释放模块,用于根据所述地址范围,确定所述第一内存块,并将所述第一内存块释放;
[0035]判断模块,用于判断所述第一内存块是否重复释放;
[0036]标记模块,用于:
[0037]若是,则将所述第一内存块标记为重复释放内存块,以避免所述第一内存块被再次分配给应用程序;
[0038]若否,则将所述第一内存块标记为空闲内存块。
[0039]第三方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括:
[0040]一个或多个处理器;
[0041]存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的内存释放方法。
[0042]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的内存释放方法。
[0043]相对现有技术,本专利技术实施例提供的一种内存释放方法、装置、电子设备及存储介
质,方法包括:响应第一应用程序发送的内存释放请求,内存释放请求包括第一内存块的地址范围;根据地址范围,确定第一内存块,并将第一内存块释放;判断第一内存块是否重复释放;若是,则将第一内存块标记为重复释放内存块,以避免第一内存块被再次分配给应用程序;若否,则将第一内存块标记为空闲内存块。由于将确定出的重复释放的内存块标记为重复释放内存块,从而避免了该内存块再次分配给应用程序而导致内存崩溃的情况。
附图说明
[0044]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0045]图1为本专利技术实施例提供的内存释放方法的一种流程示意图。
[0046]图2为本专利技术实施例提供的内存释放方法的示例图。
[0047]图3为本专利技术实施例提供的内存释放方法的另一种流程示意图。
[0048]图4为本专利技术实施例提供的内存释放装置的方框示意图。
[0049]图5为本专利技术实施例提供的电子设备的方框示意图。
[0050]图标:100

电子设备;101

存储器;102

处理器;103

总线;200

内存释放本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存释放方法,其特征在于,应用于电子设备,包括:响应第一应用程序发送的内存释放请求,所述内存释放请求包括第一内存块的地址范围;根据所述地址范围,确定所述第一内存块,并将所述第一内存块释放;判断所述第一内存块是否重复释放;若是,则将所述第一内存块标记为重复释放内存块,以避免所述第一内存块被再次分配给应用程序;若否,则将所述第一内存块标记为空闲内存块。2.根据权利要求1所述的方法,其特征在于,所述第一内存块包括初始内存释放值,所述初始内存释放值表征所述第一内存块连续释放的次数;所述判断所述第一内存块是否重复释放的步骤,包括:将所述初始内存释放值加1,得到目标内存释放值;若所述目标内存释放值大于预设值,则表征所述第一内存块重复释放;其中,所述预设值表征所述内存块重复释放时对应的连续释放次数;若所述目标内存释放值小于或等于所述预设值,则表征所述第一内存块未重复释放。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应第二应用程序发送的内存分配请求,所述内存分配请求包括内存地址大小;判断是否存在满足所述内存地址大小的空闲内存块;若是,则在任意一个所述空闲内存块中为所述第二应用程序分配第二内存块;若否,则从所有所述重复释放内存块中,确定出至少一个目标内存块,并利用预设回收算法对每个所述目标内存块均进行回收,得到每个回收内存块,以及在所有所述回收内存块中为所述第二应用程序分配所述第二内存块;将所述第二内存块的初始内存释放值置为0。4.根据权利要求3所述的方法,其特征在于,所述电子设备预先存储有日志表,所述日志表包括每个内存块的地址范围和每个所述地址范围对应的累计释放次数;所述从所有所述重复释放内存块中,确定出至少一个目标内存块的步骤,包括:根据每个所述重复释放内存块的地址范围,从所述日志表中确定出每个所述重复释放内存块的累计释放次数;计算所述重复释放内存块的当次释放次数阈值;将每个所述累计释放次数大于1,且小于或等于所述当次释放次数阈值的重复释放内存块均作为所述目标内存块。5.根据权利要求4所述的方法,其特征在于,所述日志表还包括所述电子设备对重复释放内存块进行回收的历史回收次数;所述计算所述重复释放内存块的当次释放次数阈值的步骤,包括:从所述日志表中获取所述历史回收次数;根据所述历史回收次数和预设释放次数阈值,利用预设公式k=2
n
×
k...

【专利技术属性】
技术研发人员:邬科科金文静冯丹荣
申请(专利权)人:宁波三星智能电气有限公司
类型:发明
国别省市:

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

1