说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210792285.1 (22)申请日 2022.07.06 (71)申请人 深圳市正 浩创新科技股份有限公司 地址 518000 广东省深圳市宝安区石岩街 道龙腾社区松白公路北侧方正科技工 业园厂房A 202 (72)发明人 詹军成 陈熙  (74)专利代理 机构 深圳市联鼎知识产权代理有 限公司 4 4232 专利代理师 刘抗美 (51)Int.Cl. G06F 9/50(2006.01) (54)发明名称 内存分配方法及装置、 设备、 计算机可读存 储介质 (57)摘要 本申请的实施例揭示了一种内存分配方法 及装置、 设备、 计算机可读存储介质。 该方法通过 获取待分配内存的预设软件中目标任务的最大 栈深分支函数链, 确定出理论最大栈深分支函数 链, 即目标任务的分支函数链中堆栈消耗最大的 分支函数链; 在目标运行环境中运行预设软件, 通过获取最大栈深分支函数链的末端函数被执 行时的任务堆栈深度, 从而在预设软件运行过程 中, 准确地确定出目标任务的最大栈深, 并基于 目标任务的最大栈深为预设软件的目标任务配 置内存参数, 基于该内存参数为目标任务分配合 理的内存资源, 在保障目标任务正常运行的前提 下, 避免了内存资源的浪费。 权利要求书2页 说明书12页 附图6页 CN 115185684 A 2022.10.14 CN 115185684 A 1.一种内存分配方法, 其特 征在于, 所述内存分配方法包括: 获取待分配内存的预设软件中目标任务的最大栈深分支函数链; 其中, 所述最大栈深 分支函数链为所述目标任务的分支函数链中堆栈消耗 最大的分支函数链; 在目标运行环境中运行所述预设软件, 以执行所述目标任务的所述最大栈深分支函数 链, 并检测所述 最大栈深分支函数链的末端函数 是否被执 行; 若检测为是, 则获取 所述末端函数被执 行时的任务 堆栈深度; 将所述任务堆栈深度作为所述目标任务的最大栈深, 并基于目标任务的最大栈深为所 述目标任务配置内存参数。 2.根据权利要求1所述的内存分配方法, 其特征在于, 在所述获取待分配 内存的预设软 件中目标任务的最大栈深分支函数链之前, 所述内存分配方法还 包括: 检测所述目标任务的各个分支函数链中是否存在递归函数; 若任一分支函数链中存在递归函数, 则将存在的递归函数进行分级拆解, 得到对应的 多个非递归子函数; 将存在的递归函数替换为由对应的所述多个非递归子函数组成的函数链以更新对应 的分支函数链。 3.根据权利要求1所述的内存分配方法, 其特征在于, 所述目标任务中包含目标任务入 口函数; 在所述获取待分配内存的预设软件中目标任务的最大栈深分支函数链之前, 所述 内存分配方法还 包括: 根据所述目标任务的分支函数链的临时变量以及层级函数之间的调用关系, 确定所述 目标任务中从各个分支函数链的末端函数到所述目标任务入口函数的堆栈深度; 将所述目标任务中堆栈深度最大的分支函数链作为所述目标任务的最大栈深分支函 数链。 4.根据权利要求1所述的内存分配方法, 其特 征在于, 所述内存分配方法还 包括: 若所述最大栈深分支函数链中包括库函数, 则从堆栈数据库中获取所述库函数的堆栈 深度; 将所述库函数的堆栈深度作为所述库函数中的末端函数到父节点 函数的堆栈深度。 5.根据权利要求 4所述的内存分配方法, 其特 征在于, 所述内存分配方法还 包括: 检测所述 最大栈深分支函数链中是否包括所述库函数; 若包括所述库函数, 则获取所述库函数的堆栈深度, 并将所述库函数的堆栈深度存储 至所述堆栈数据库中。 6.根据权利要求1 ‑5任一项所述的内存分配方法, 其特征在于, 所述目标任务为中断任 务, 所述中断任务用于中断运行中的任务; 所述获取所述末端函数被执行时的任务堆栈深 度, 包括: 获取所述预设软件运行至所述中断任务入口位置的第一栈深; 获取所述中断任务入口位置的函数被执 行时至所述末端函数被执 行时的第二栈深; 根据所述第 一栈深和所述第 二栈深的绝对差值, 确定所述中断任务运行至所述末端函 数时的任务 堆栈深度。 7.根据权利要求6所述的内存分配方法, 其特 征在于, 所述内存分配方法还 包括: 检测所述预设软件的源代码中是否包 含预设中断集 合中的中断函数;权 利 要 求 书 1/2 页 2 CN 115185684 A 2若所述源代码中包含所述预设中断集合中的中断函数, 以所述中断函数为所述中断任 务入口位置 。 8.一种内存分配装置, 其特 征在于, 所述内存分配装置包括: 第一获取模块, 被配置为获取待分配 内存的预设软件中目标任务的最大栈深分支函数 链; 其中, 所述最大栈深分支函数链为 目标任务的分支函数链中堆栈消 耗最大的分支函数 链; 运行检测模块, 被配置为在目标运行环境中运行所述预设软件, 以执行所述目标任务 的所述最大栈深分支函数链, 并检测所述 最大栈深分支函数链的末端函数 是否被执 行; 第二获取模块, 被 配置为若检测为是, 则获取 所述末端函数被执 行时的任务 堆栈深度; 内存分配模块, 被配置为将所述任务堆栈深度作为所述目标任务的最大栈深, 并基于 目标任务的最大栈深为所述目标任务配置内存参数。 9.一种电子设备, 其特 征在于, 所述电子设备包括: 控制器; 存储器, 用于存储一个或多个程序, 当所述一个或多个程序被所述控制器执行时, 使得 所述控制器实现如权利要求1至7中任一项所述的内存分配方法。 10.一种计算机可读存储介质, 其特征在于, 其上存储有计算机可读指令, 当所述计算 机可读指 令被计算机的处理器执行时, 使计算机执行权利要求1至7中任一项 所述的内存分 配方法。权 利 要 求 书 2/2 页 3 CN 115185684 A 3

.PDF文档 专利 内存分配方法及装置、设备、计算机可读存储介质

文档预览
中文文档 21 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共21页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 内存分配方法及装置、设备、计算机可读存储介质 第 1 页 专利 内存分配方法及装置、设备、计算机可读存储介质 第 2 页 专利 内存分配方法及装置、设备、计算机可读存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:30:34上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。