[发明专利]一种内存管理方法、装置、设备及可读存储介质在审
申请号: | 202110729506.6 | 申请日: | 2021-06-29 |
公开(公告)号: | CN113608862A | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 张增伟 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F11/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春辉 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 装置 设备 可读 存储 介质 | ||
本申请公开了一种内存管理方法,该方法能够提前为模块分配内存,避免了动态内存申请带来的弊端,而且,在为模块分配内存之后,该方法能够实时监测模块的内存使用情况和内存申请请求,在模块的内存需求量超过提前分配的内存量时,生成内存告警,并在内存告警频次较高时对模块进行内存扩容。实现了精准评估模块的内存需求的目的,避免了为模块分配过少内存导致软件性能无法充分发挥的问题,提升了内存使用效率。此外,本申请还提供了一种内存管理装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。
技术领域
本申请涉及计算机技术领域,特别涉及一种内存管理方法、装置、设备及可读存储介质。
背景技术
内存对软件运行至关重要,内存决定软件是否可以正常运行,也决定着软件性能。一般在linux操作系统或者一些小型的实时操作系统中都会有内存管理功能,然而这些内存管理基本上都是对动态内存的管理,实际应用中,使用动态内存会出现很多不确定因素,比如特定场景内存升高导致宕机,使用过的内存没有释放导致可用内存越来越少等,所以,一些大型软件的开发都是禁止使用动态内存的,有些可以使用动态内存,但是申请动态内存也只限于在提前划分好的内存池里面进行,这样就可以避免上述问题。
上述提前划分内存的方法对软件的健壮性有很大的保证,但是,随着软件的功能不断增加,软件代码量的不断加大,提前分配的内存可能会不够用,出现某个功能运行得不到足够内存而出现卡顿的现象。但是增加内存又不能很精确的评估出到底分配多少内存,如果分配少了软件性能得不到提升,分配多了又会增加成本,造成浪费。
综上,目前的内存管理方案在提前为软件划分内存时,由于无法准确得知软件的内存需求量,导致划分的内存过多或过少,导致软件性能无法得到充分发挥或成本偏高的问题。如何克服上述弊端,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种内存管理方法、装置、设备及可读存储介质,用以解决当前的内存管理方案由于无法得知软件的内存需求量,导致内存划分偏多或偏少的问题。其具体方案如下:
第一方面,本申请提供了一种内存管理方法,包括:
在内存池中,根据目标模块的内存预留量对所述目标模块进行内存分配;
在所述目标模块运行过程中,实时监测所述目标模块的内存使用情况;
若接收到所述目标模块的内存申请请求,则根据所述内存使用情况和所述内存申请请求,判断所述目标模块的预估内存使用量是否超过所述内存预留量,其中所述预估内存使用量等于所述内存使用情况中的内存使用量与所述内存申请请求中的内存申请量的和;若是,则生成内存告警;
在所述内存告警的频次超过阈值时,根据所述内存申请量对所述目标模块进行内存扩容。
可选的,在所述在所述目标模块运行过程中,实时监测所述目标模块的内存使用情况之后,还包括:
若在预设时长内未接收到所述目标模块的内存申请请求,则根据所述内存使用情况确定所述目标模块的内存使用量;
判断所述内存使用量是否小于所述内存预留量;
若是,则对所述目标模块进行内存缩减。
可选的,所述在所述目标模块运行过程中,实时监测所述目标模块的内存使用情况,包括:
根据平台性能设置监测频率,在所述目标模块运行过程中,按照所述监测频率实时监测所述目标模块的内存使用情况。
可选的,所述在所述内存告警的频次超过阈值时,根据所述内存申请量对所述目标模块进行内存扩容,包括:
在所述内存告警的频次超过阈值时,根据所述内存申请量控制所述目标模块的内存地址尾指针后移。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110729506.6/2.html,转载请声明来源钻瓜专利网。