【技术实现步骤摘要】
一种获取内存占用量的方法、装置、计算机设备及介质
本专利技术属于软件开发
,尤其涉及一种获取内存占用量的方法、装置、计算机设备及介质。
技术介绍
在程序开发中,内存的使用对于程序运行来说是非常关键的指标,在程序运行中,若内存占用量太大的话,会影响整个程序的运行效率。现有技术中是通过设置一个定时器不断的去获取当前内存的使用情况,从而监控内存的使用量,然而此种方法只能监控内存使用量,无法为开发人员提供优化方向,导致开发人员不能针对性地对内存占用进行优化,进而也无法提高程序运行效率。
技术实现思路
针对现有技术存在的问题,本专利技术实施例提供了一种获取内存占用量的方法、装置、计算机设备及介质,用于解决在程序开发中,当内存占用量比较大时,现有技术中无法为开发人员提供优化方向,导致开发人员不能针对性地对内存占用进行优化,进而导致程序的运行效率不能得到保证的技术问题。本专利技术实施例提供一种获取内存占用量的方法,所述方法包括:获取程序模块中所有的函数信息;利用预设的第一钩子函数对各函数的起始点进行hook,将预设的第一监控函数注入至每个函数的起始点;利用预设的第二钩子函数对所述各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点;当利用所述第一监控函数监控到每个函数执行的开始时刻时,获取所述每个函数对应的第一内存占用量;当利用所述第二监控函数监控到所述每个函数执行的结束时刻时,获取所述每个函数对应的第二内存占用量;根据对应的所述第一内存占用量及对应的所述第二内存占用量确定所述每个函数在执行过程中所使用的内存占用量,所述内存占用量为所述第二内存占 ...
【技术保护点】
1.一种获取内存占用量的方法,其特征在于,所述方法包括:获取程序模块中所有的函数信息;利用预设的第一钩子函数对各函数的起始点进行hook,将预设的第一监控函数注入至每个函数的起始点;利用预设的第二钩子函数对所述各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点;当利用所述第一监控函数监控到每个函数执行的开始时刻时,获取所述每个函数对应的第一内存占用量;当利用所述第二监控函数监控到所述每个函数执行的结束时刻时,获取所述每个函数对应的第二内存占用量;根据对应的所述第一内存占用量及对应的所述第二内存占用量确定所述每个函数在执行过程中所使用的内存占用量,所述内存占用量为所述第二内存占用量与所述第一内存占用量的差值。
【技术特征摘要】
1.一种获取内存占用量的方法,其特征在于,所述方法包括:获取程序模块中所有的函数信息;利用预设的第一钩子函数对各函数的起始点进行hook,将预设的第一监控函数注入至每个函数的起始点;利用预设的第二钩子函数对所述各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点;当利用所述第一监控函数监控到每个函数执行的开始时刻时,获取所述每个函数对应的第一内存占用量;当利用所述第二监控函数监控到所述每个函数执行的结束时刻时,获取所述每个函数对应的第二内存占用量;根据对应的所述第一内存占用量及对应的所述第二内存占用量确定所述每个函数在执行过程中所使用的内存占用量,所述内存占用量为所述第二内存占用量与所述第一内存占用量的差值。2.如权利要求1所述的方法,其特征在于,所述获取程序模块中所有的函数信息后,包括:将所述各函数信息按照预先设置的函数结构存储在预先建立的函数链表中;其中,每个函数对应一个函数结构,所述函数结构包括:用于记录函数名称的Stringname,用于记录程序模块名称的第一参数stringmodule,用于记录所述程序模块的起始地址的第二参数DWORDdwbase,用于记录所述函数相对于所述程序模块的起始偏移量的第三参数DWORDdwstart,用于记录所述函数本身内存的第四参数DWORDdwsize,用于记录所述函数在执行开始时刻对应的第一内存占用量的第五参数Longdwmemory。3.如权利要求1所述的方法,其特征在于,所述利用预设的第一钩子函数对各函数的起始点进行hook,将预设的第一监控函数注入至每个函数的起始点包括:逐一获取每个函数对应的程序模块的起始地址及所述每个函数相对于对应的程序模块的起始偏移量;根据对应的程序模块的起始地址及所述每个函数相对于所述对应的程序模块的起始偏移量确定所述每个函数的起始内存地址;利用所述第一钩子函数将预先建立的第一监控函数注入至所述每个函数的起始内存地址处,更新所述每个函数所在的当前线程,完成对各函数起始点的hook。4.如权利要求1所述的方法,其特征在于,所述利用预设的第二钩子函数对各函数的结束点进行hook,将预设的第二监控函数注入至所述每个函数的结束点包括:逐一获取每个函数对应的程序模块的起始地址、所述每个函数本身的内存及所述每个函数相对于对应的程序模块的起始偏移量;根据所述每个函数本身的内存及所述每个函数相对于对应的程序模块的起始偏移量确定所述每个函数的结束内存地址;利用所述第二钩子函数将预先建立的第二监控函数注入至所述每个函数的结...
【专利技术属性】
技术研发人员:周志刚,
申请(专利权)人:武汉斗鱼鱼乐网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。