G06F17/18 G06F17/15 G06F9/50
1.一种内存使用情况统计方法,其特征在于,包括:
当软件服务调用目标函数进行内存申请时,则调用所述目标函数对应的预设内存申请逻辑;其中,所述预设内存申请逻辑封装有所述目标函数,以及内存统计逻辑;
利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,若是,则对所述目标函数对应的内存使用情况进行统计;
所述方法还包括:获取故障注入对象清单;当所述软件服务调用目标函数进行内存申请时,基于所述故障注入对象清单判断所述目标函数是否需要故障注入,若是,则返回申请内存失败信息。
2.根据权利要求1所述的内存使用情况统计方法,其特征在于,还包括:
获取内存统计对象清单;
相应的,所述利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,包括:
利用所述预设内存申请逻辑,并基于所述内存统计对象清单判断所述目标函数是否为待进行内存使用情况统计的对象。
3.根据权利要求2所述的内存使用情况统计方法,其特征在于,所述获取内存统计对象清单,包括:
获取包括函数名和/或文件名的内存统计对象清单。
4.根据权利要求3所述的内存使用情况统计方法,其特征在于,若所述内存统计对象清单包括文件名,则所述方法还包括:
基于所述内存统计对象清单判断所述目标函数所属的文件是否为待进行内存使用情况统计的对象;
若是,则对该文件的内存使用情况进行统计。
5.根据权利要求1所述的内存使用情况统计方法,其特征在于,所述对所述目标函数对应的内存使用情况进行统计,包括:
对所述目标函数申请内存的大小、起始地址、在所属文件中的位置进行统计。
6.根据权利要求1所述的内存使用情况统计方法,其特征在于,所述对所述目标函数对应的内存使用情况进行统计之后,还包括:
将相应的统计信息保存至内存;
当获取到内存使用情况统计导出指令,则从所述内存中将所述统计信息导出至文件中。
7.一种内存使用情况统计装置,其特征在于,包括:
内存申请逻辑调用模块,用于当软件服务调用目标函数进行内存申请时,则调用所述目标函数对应的预设内存申请逻辑;其中,所述预设内存申请逻辑封装有所述目标函数,以及内存统计逻辑;
内存使用情况统计模块,用于利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,若是,则对所述目标函数对应的内存使用情况进行统计;
故障注入对象清单获取模块,用于获取故障注入对象清单;
故障模拟模块,用于当所述软件服务调用目标函数进行内存申请时,基于所述故障注入对象清单判断所述目标函数是否需要故障注入,若是,则返回申请内存失败信息。
8.根据权利要求7所述的内存使用情况统计装置,其特征在于,还包括:
统计信息保存模块,用于将相应的统计信息保存至内存;
统计信息统计模块,用于当获取到内存使用情况统计导出指令,则从所述内存中将所述统计信息导出至文件中。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的内存使用情况统计方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的内存使用情况统计方法。
本申请涉及存储技术领域,特别涉及一种内存使用情况统计方法、装置、设备及介质。
在软件服务开发过程中,工程师都会非常关心内存的使用情况,担心编写的程序存在内存泄漏,内存越界等严重问题,一旦由于疏忽或经验不足引入问题,定位的难度非常大,且通常会导致严重的故障。尤其是在反复申请释放内存空间的使用场景,比如热插拔,模块的卸载加载等场景,更容易出现问题。因此,在开发调试过程中,能够有效的对内存使用情况进行统计,可以避免很多问题。
目前,有一些系统工具可以查看系统下内存的使用情况,但存在统计不准确,统计太笼统,无法定位问题等弊端。
有鉴于此,本申请的目的在于提供一种内存使用情况统计方法、装置、设备及介质,能够提升内存使用情况统计的准确度,并降低问题定位难度。其具体方案如下:
第一方面,本申请公开了一种内存使用情况统计方法,包括:
当软件服务调用目标函数进行内存申请时,则调用所述目标函数对应的预设内存申请逻辑;
利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,若是,则对所述目标函数对应的内存使用情况进行统计。
可选的,还包括:
获取内存统计对象清单;
相应的,所述利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,包括:
利用所述预设内存申请逻辑,并基于所述内存统计对象清单判断所述目标函数是否为待进行内存使用情况统计的对象。
可选的,所述获取内内存统计对象清单,包括:
获取包括函数名和/或文件名的内存统计对象清单。
可选的,若所述内存统计对象清单包括文件名,则所述方法还包括:
基于所述内存统计对象清单判断所述目标函数所属的文件是否为待进行内存使用情况统计的对象;
若是,则对该文件的内存使用情况进行统计。
可选的,所述对所述目标函数对应的内存使用情况进行统计,包括:
对所述目标函数申请内存的大小、起始地址、在所属文件中的位置进行统计。
可选的,所述对所述目标函数对应的内存使用情况进行统计之后,还包括:
将相应的统计信息保存至内存;
当获取到内存使用情况统计导出指令,则从所述内存中将所述统计信息导出至文件中。
可选的,还包括:
获取故障注入对象清单;
当所述软件服务调用目标函数进行内存申请时,基于所述故障注入对象清单判断所述目标函数是否需要故障注入,若是,则返回申请内存失败信息。
第二方面,本申请公开了一种内存使用情况统计装置,包括:
内存申请逻辑调用模块,用于当软件服务调用目标函数进行内存申请时,则调用所述目标函数对应的预设内存申请逻辑;
内存使用情况统计模块,用于利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,若是,则对所述目标函数对应的内存使用情况进行统计。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的内存使用情况统计方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的内存使用情况统计方法。
可见,本申请当软件服务调用目标函数进行内存申请时,则调用所述目标函数对应的预设内存申请逻辑,然后利用所述预设内存申请逻辑判断所述目标函数是否为待进行内存使用情况统计的对象,若是,则对所述目标函数对应的内存使用情况进行统计。也即,本申请在调用目标函数进行内存申请时,便会调用该目标函数对应的预设内存申请逻辑,若所述目标函数为待进行内存使用情况统计的对象,则对该目标函数对应的内存使用情况进行统计,这样,将内存使用情况统计精确到函数粒度,能够提升内存使用情况统计的准确度,并降低问题定位难度。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种内存使用情况统计方法流程图;
图2为本申请提供的一种具体的内存使用情况统计方法流程图;
图3为本申请提供的一种具体的内存使用情况统计方法流程图;
图4为本申请提供的一种内存使用情况统计装置结构示意图;
图5为本申请提供的一种电子设备结构图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,有一些系统工具可以查看系统下内存的使用情况,但存在统计不准确,统计太笼统,无法定位问题等弊端。为此,本申请提供了一种内存使用情况统计方案,能够提升内存使用情况统计的准确度,并降低问题定位难度。
参见图1所示,本申请实施例公开了一种内存使用情况统计方法,包括:
步骤S11:当软件服务调用目标函数进行内存申请时,则调用所述目标函数对应的预设内存申请逻辑。
其中,目标函数为所述软件服务中原有的进行内存申请的函数,所述预设内存申请逻辑封装有所述目标函数,以及内存统计逻辑。
也即,本申请实施例对软件服务的内存申请函数进行封装重定义,将软件服务中每个原有的进行内存申请的函数以及内存统计逻辑封装为相应的预设内存申请逻辑。当调用任一原有的进行内存申请的函数时,调用该函数对应的预设内存申请逻辑。其中,预设内存申请逻辑的名称与对应的目标函数的名称一致。
以C语言kzalloc为例:
本文发布于:2023-04-13 11:25:45,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/85982.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |