[发明专利]一种内存使用量控制方法、装置、设备及介质有效
申请号: | 202011181125.0 | 申请日: | 2020-10-29 |
公开(公告)号: | CN112286684B | 公开(公告)日: | 2022-08-02 |
发明(设计)人: | 张晓萌;孟祥瑞 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘晓菲 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 使用 控制 方法 装置 设备 介质 | ||
本申请公开了一种内存使用量控制方法、装置、设备、介质,该方法包括:按照预设规则获取目标设备中运行的执行实体的栈空间使用量;基于所述栈空间使用量确定出所述执行实体的栈空间控制参数;判断所述栈空间控制参数是否为预设栈空间控制参数;如果所述栈空间控制参数不为预设栈空间控制参数,则将所述栈空间控制参数下发到所述执行实体,以便所述执行实体根据所述栈空间控制参数控制内存使用量。这样能够对执行实体的栈空间使用量进行控制,避免不必要的内存消耗,节约系统内存。
技术领域
本申请涉及计算机技术领域,特别涉及一种内存使用量控制方法、装置、设备、介质。
背景技术
CPU执行应用程序的过程就是按照顺序执行一条条的指令,直到执行了退出指令。高级语言的出现使得巨无霸型的软件项目的出现成为可能,例如采用C语言和汇编语言的Linux项目。这些大型项目经编译或解释之后包含CPU可执行指令的目标文件都非常巨大,当它们被加载到内存中就是应用程序执行时的第一份内存消耗。目前很多技术的出现都是为了降低这部分内存消耗,比如动态库;编程技术层面也有体现,比如尽可能提高代码复用率,以及函数等。
而函数的执行过程会涉及执行逻辑的中间过程的存储和变化,临时变量出现在函数中就是为了保存这个中间状态,生命周期仅存在于当前函数中,数据结构栈非常适合实现这种需求,包括函数调用函数语义。栈其实也是分配了一块内存,和堆的最大不同就是使用不同的内存区域,具有不同的生命周期。
可执行文件指令的多少及堆内存占用与程序员的经验紧密相关,无法预测及基于实时监控动态调整。栈内存的使用量却是不同,不同程序使用对应不同大小的栈,相同程序执行不同的任务流程也会使用不同的栈大小,而且在一个相对稳定的时间段内,对栈大小的需求比较稳定。因此,如何对栈内存的使用量进行控制就成为了本领域技术人员要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种栈空间使用量控制方法、装置、设备、介质,能够对执行实体的栈空间使用量进行控制,避免不必要的内存消耗,节约系统内存。其具体方案如下:
第一方面,本申请公开了一种内存使用量控制方法,包括:
按照预设规则获取目标设备中运行的执行实体的栈空间使用量;
基于所述栈空间使用量确定出所述执行实体的栈空间控制参数;
判断所述栈空间控制参数是否为预设栈空间控制参数;
如果所述栈空间控制参数不为预设栈空间控制参数,则将所述栈空间控制参数下发到所述执行实体,以便所述执行实体根据所述栈空间控制参数控制内存使用量。
可选地,所述按照预设规则获取目标设备中运行的执行实体的栈空间使用量,包括:
按照预设时间间隔获取目标设备中运行的执行实体的栈空间使用量;
将获取到的所述栈空间使用量存储到预设的循环数组中。
可选地,所述基于所述栈空间使用量确定出所述执行实体的栈空间控制参数,包括:
每获取到所述执行实体的栈空间使用量的预设数量个采样值时,基于所述预设数量个栈空间使用量的采样值预测所述执行实体的当前栈空间最大使用量;
判断当前栈空间最大使用量与参考栈空间最大使用量之间的差值是否不小于预设偏差阈值,其中,所述参考栈空间最大使用量为确定出当前栈空间最大使用量之前一个确定出的栈空间最大使用量;
如果当前栈空间最大使用量与参考栈空间最大使用量之间的差值不小于预设偏差阈值,则将当前栈空间最大使用量作为所述执行实体的栈空间控制参数。
可选地,所述基于所述预设数量个栈空间使用量的采样值预测所述执行实体的当前栈空间最大使用量,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011181125.0/2.html,转载请声明来源钻瓜专利网。