说明:收录全网最新的团体标准 提供单次或批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210923867.9 (22)申请日 2022.08.02 (71)申请人 网易 (杭州) 网络有限公司 地址 310000 浙江省杭州市滨江区长河街 道网商路59 9号4幢7层 (72)发明人 王令桂  (74)专利代理 机构 北京市京大律师事务所 11321 专利代理师 胡安 (51)Int.Cl. G06F 11/30(2006.01) G06F 9/50(2006.01) (54)发明名称 内存状态的监控方法、 装置及电子设备 (57)摘要 本发明提供了一种内存状态的监控方法、 装 置及电子设备, 响应于目标函数对动态内存分配 函数的第一调用 指令, 调用动态内存分配函数; 通过动态内存分配函数, 基于待分配内存的内存 参数调用系统内存分配函数, 以使与第一内存参 数匹配的目标内存分配至目标函数, 基于目标内 存更新目标函数对应的内存状态。 上述方法通过 与系统内存分配函数对应的钩子函数将调用系 统内存分配函数的机器码动态修改为调用动态 内存分配函数的机器码, 从而通过动态内存分配 函数调用系统内存分配函数进行内存分配, 并基 于内存分配结果更新目标函数的内存状态, 从而 在无需重新编辑代码的情况下, 实现了对内存使 用情况的监控, 提高了内存使用情况的监控效 率, 降低了人工成本 。 权利要求书2页 说明书13页 附图3页 CN 115495306 A 2022.12.20 CN 115495306 A 1.一种内存状态的监控方法, 其特 征在于, 所述方法包括: 响应于目标函数对预设的动态内存分配函数的第 一调用指令, 调用所述动态内存分配 函数; 其中, 所述第一调用指令基于所述目标函数中的第一机器码生成; 所述第一机器码调 用所述动态内存分配函数的机器码生成; 所述第一机器码由系统内存分配函数对应的第一 钩子函数对所述目标函数中的第二机器码进 行动态修改得到; 所述第二机器码用于调用所 述系统内存分配函数的机器码所述第一调用指 令包括待分配内存的第一内存参数; 所述系 统内存分配函数用于基于所述待分配内存的内存参数, 对预设的内存空间中的待分配内存 进行分配处 理; 通过所述动态内存分配函数, 基于所述待分配内存的内存参数调用所述系统内存分配 函数, 以使与所述第一内存参数匹配的目标内存分配至所述 目标函数, 基于所述 目标内存 更新所述目标函数对应的内存状态。 2.根据权利要求1所述的方法, 其特 征在于, 所述第一内存参数包括内存容 量; 基于所述待分配 内存的内存参数调用所述系统内存分配函数, 以使与 所述第一内存参 数匹配的目标内存分配至所述目标函数的步骤, 包括: 基于预设的内存使用次数变量, 确定所述待分配内存的内存使用标识; 所述内存使用 次数变量的参数值随着所述动态内存分配函数的调用次数增 加; 基于所述内存使用标识的长度, 更新所述待分配内存的内存容 量; 基于更新后的所述待分配内存的内存容量调用所述系统内存分配函数, 以使与更新后 的内存容 量相匹配的目标内存分配至所述目标函数; 将所述内存使用标识保存至所述目标内存。 3.根据权利要求1所述的方法, 其特征在于, 所述目标内存保存有对应的内存使用标 识; 所述内存使用标识基于预设的内存使用次数变量及所述动态内存分配函数的调用次数 确定; 所述第一内存参数包括所述目标内存的内存容量; 所述内存状态包括内存分配次数、 已分配内存状态及内存使用容 量; 基于所述目标内存更新所述目标函数对应的内存状态的步骤, 包括: 将所述目标函数对应的; 以所述内存使用标识及所述目标内存的内存容量表示所述目标内存, 将所述目标内存 的已分配内存状态设置为使用中; 基于所述目标内存的内存容 量, 更新所述目标函数的内存使用容 量。 4.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 响应于所述目标函数对系统内存释放函数的第 二调用指令, 调用所述系统内存释放函 数对应的第二钩子函数; 所述第二调用指令包括待释放内存的内存参数; 所述系统内存释 放函数用于基于所述待释放内存的第二内存参数, 对所述内存空间中的待释放内存进 行释 放处理; 通过所述第二钩子函数, 基于所述第二内存参数调用所述系统内存释放函数, 以使所 述待释放内存从所述 目标函数处释放, 基于所述待释放内存, 更新所述 目标函数对应的内 存状态。 5.根据权利要求4所述的方法, 其特征在于, 所述待释放内存保存有对应的内存使用标权 利 要 求 书 1/2 页 2 CN 115495306 A 2识; 所述内存使用标识基于预设的内存使用次数变量及所述待释放内存对应的所述动态内 存分配函数的调用次数确定; 所述内存状态包括已分配内存状态及内存使用容 量; 基于所述待释放内存, 更新所述目标函数对应的内存状态的步骤, 包括: 读取所述待释放内存中保存的内存使用标识; 将所述内存状态中, 与所述内存使用标识对应的内存的已分配内存状态设置为已释 放; 基于所述待释放内存的内存容 量, 更新所述目标函数的内存使用容 量。 6.根据权利要求1所述的方法, 其特征在于, 响应于目标函数对预设的动态内存分配函 数的第一调用指令, 调用所述动态内存分配函数之前, 所述方法还 包括: 响应于目标函数对系统内存分配函数的调用指令, 调用所述系统内存分配函数对应的 第一钩子函数; 通过所述第一钩子函数将所述目标函数中的所述第二机器码动态修改为所述第一机 器码。 7.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 响应于内存快照 生成函数的调用指令, 通过所述内存快照 生成函数基于所述内存空间 对应的内存状态生成所述内存空间的内存快照。 8.一种内存状态的监控 装置, 其特 征在于, 所述装置包括: 动态内存分配函数调用模块, 用于响应于目标函数对预设的动态内存分配函数的第 一 调用指令, 调用所述动态内存分配函数; 其中, 所述第一调用指令基于所述目标函数中的第一机器码生成; 所述第一机器码调 用所述动态内存分配函数的机器码生成; 所述第一机器码由系统内存分配函数对应的第一 钩子函数对所述目标函数中的第二机器码进 行动态修改得到; 所述第二机器码用于调用所 述系统内存分配函数的机器码所述第一调用指 令包括待分配内存的第一内存参数; 所述系 统内存分配函数用于基于所述待分配内存的内存参数, 对预设的内存空间中的待分配内存 进行分配处 理; 第一内存状态更新模块, 用于通过所述动态内存分配函数, 基于所述待分配内存的内 存参数调用所述系统内存分配函数, 以使与所述第一内存参数匹配的目标内存分配至所述 目标函数, 基于所述目标内存更新所述目标函数对应的内存状态。 9.一种电子设备, 其特征在于, 包括处理器和存储器, 所述存储器存储有能够被所述处 理器执行 的机器可执行指令, 所述处理器执行所述机器可执行指令以实现权利要求1 ‑7任 一项所述的内存状态的监控方法。 10.一种机器可读存储介质, 其特征在于, 所述机器可读存储介质存储有机器可执行指 令, 所述机器可执行指令在被处理器调用和执行时, 所述机器可执行指令促使所述处理器 实现权利要求1 ‑7任一项所述的内存状态的监控方法。权 利 要 求 书 2/2 页 3 CN 115495306 A 3

.PDF文档 专利 内存状态的监控方法、装置及电子设备

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