[发明专利]一种获取内存占用量的方法、装置、计算机设备及介质在审
申请号: | 201910638175.8 | 申请日: | 2019-07-16 |
公开(公告)号: | CN110347407A | 公开(公告)日: | 2019-10-18 |
发明(设计)人: | 周志刚 | 申请(专利权)人: | 武汉斗鱼鱼乐网络科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/50;G06F11/36 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 姚萱萱 |
地址: | 430000 湖北省武汉市东湖新技术开发区软件园东路*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存占用量 监控函数 钩子函数 函数执行 起始点 程序模块 计算机设备 函数使用 函数信息 开始时刻 运行效率 监控 优化 | ||
1.一种获取内存占用量的方法,其特征在于,所述方法包括:
获取程序模块中所有的函数信息;
利用预设的第一钩子函数对各函数的起始点进行hook,将预设的第一监控函数注入至每个函数的起始点;
利用预设的第二钩子函数对所述各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点;
当利用所述第一监控函数监控到每个函数执行的开始时刻时,获取所述每个函数对应的第一内存占用量;
当利用所述第二监控函数监控到所述每个函数执行的结束时刻时,获取所述每个函数对应的第二内存占用量;
根据对应的所述第一内存占用量及对应的所述第二内存占用量确定所述每个函数在执行过程中所使用的内存占用量,所述内存占用量为所述第二内存占用量与所述第一内存占用量的差值。
2.如权利要求1所述的方法,其特征在于,所述获取程序模块中所有的函数信息后,包括:
将所述各函数信息按照预先设置的函数结构存储在预先建立的函数链表中;其中,
每个函数对应一个函数结构,所述函数结构包括:用于记录函数名称的String name,用于记录程序模块名称的第一参数string module,用于记录所述程序模块的起始地址的第二参数DWORD dwbase,用于记录所述函数相对于所述程序模块的起始偏移量的第三参数DWORD dwstart,用于记录所述函数本身内存的第四参数DWORD dwsize,用于记录所述函数在执行开始时刻对应的第一内存占用量的第五参数Long dwmemory。
3.如权利要求1所述的方法,其特征在于,所述利用预设的第一钩子函数对各函数的起始点进行hook,将预设的第一监控函数注入至每个函数的起始点包括:
逐一获取每个函数对应的程序模块的起始地址及所述每个函数相对于对应的程序模块的起始偏移量;
根据对应的程序模块的起始地址及所述每个函数相对于所述对应的程序模块的起始偏移量确定所述每个函数的起始内存地址;
利用所述第一钩子函数将预先建立的第一监控函数注入至所述每个函数的起始内存地址处,更新所述每个函数所在的当前线程,完成对各函数起始点的hook。
4.如权利要求1所述的方法,其特征在于,所述利用预设的第二钩子函数对各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点包括:
逐一获取每个函数对应的程序模块的起始地址、所述每个函数本身的内存及所述每个函数相对于对应的程序模块的起始偏移量;
根据所述每个函数本身的内存及所述每个函数相对于对应的程序模块的起始偏移量确定所述每个函数的结束内存地址;
利用所述第二钩子函数将预先建立的第二监控函数注入至所述每个函数的结束内存地址处,更新所述每个函数所在的当前线程,完成对各函数结束点的hook。
5.如权利要求2所述的方法,其特征在于,所述利用预设的第二钩子函数对所述各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点后,包括:
获取各函数所在的当前进程的句柄;
当每个函数开始执行时,基于所述当前进程的句柄,利用内存使用量获取函数获取所述每个函数在执行的开始时刻对应的所述第一内存占用量;
将各所述第一内存占用量分别赋值给对应函数结构的第五参数。
6.如权利要求5所述的方法,其特征在于,所述当利用所述第一监控函数监控到每个函数执行的开始时刻时,获取所述每个函数对应的第一内存占用量,包括:
当利用所述第一监控函数监控到每个函数执行的开始时刻时,将所述每个函数的当前起始内存地址与所述函数链表中所有函数的起始内存地址进行一一匹配;
若匹配成功时,从匹配成功的函数结构中获取所述每个函数对应的所述第一内存占用量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼鱼乐网络科技有限公司,未经武汉斗鱼鱼乐网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910638175.8/1.html,转载请声明来源钻瓜专利网。