本申请属于计算机,具体涉及一种内存泄露检测方法、装置、电子设备及可读存储介质。
背景技术:
1、随着计算机技术的不断发展,linux系统内核引入了dam-buf(directmemoryaccess buffer,直接内存访问缓冲区)内存共享机制,以解决多个设备(例如相机、图像处理器、显示器等)之间内存数据传输导致的耗时、以及重复申请多个内存块来存放相同大小的内存数据导致的内存资源紧张等问题。但是,在共享内存发生泄露的情况下,难以及时排查,导致系统低内存或死机等问题,影响系统的正常运行。
技术实现思路
1、本申请实施例的目的是提供一种内存泄露检测方法、装置、电子设备及可读存储介质,能够及时检测出共享内存泄露的情况,避免出现系统低内存或死机等问题,保证系统的正常运行。
2、第一方面,本申请实施例提供了一种内存泄露检测方法,所述方法包括:
3、获取目标内存申请进程对应的内存申请量;
4、在所述目标内存申请进程对应的内存申请量大于申请量阈值的情况下,获取所述目标内存申请进程的内存申请信息以及与所述目标内存申请进程相关联的内存使用进程的内存使用信息;
5、输出所述目标内存申请进程的内存申请信息和所述内存使用进程的内存使用信息。
6、第二方面,本申请实施例提供了一种内存泄露检测装置,所述装置包括:
7、第一获取模块,用于获取目标内存申请进程对应的内存申请量;
8、第二获取模块,用于在所述目标内存申请进程对应的内存申请量大于申请量阈值的情况下,获取所述目标内存申请进程的内存申请信息以及与所述目标内存申请进程相关联的内存使用进程的内存使用信息;
9、输出模块,用于输出所述目标内存申请进程的内存申请信息和所述内存使用进程的内存使用信息。
10、第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
11、第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
12、第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
13、第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
14、在本申请实施例中,可以获取目标内存申请进程对应的内存申请量,在目标内存申请进程对应的内存申请量大于申请量阈值的情况下,获取目标内存申请进程的内存申请信息以及与目标内存申请进程相关联的内存使用进程的内存使用信息,输出目标内存申请进程的内存申请信息和内存使用进程的内存使用信息,能够帮助开发者及时排查内存泄漏的原因,以及时检测出共享内存泄露的情况,保证系统的正常运行。
1.一种内存泄露检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取目标内存申请进程对应的内存申请量之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述对于已申请到共享内存的内存申请进程,根据所述内存申请进程的进程标识,将所述内存申请进程对应的内存申请量挂载到所述第一全局链表上,包括:
4.根据权利要求1所述的方法,其特征在于,所述获取所述目标内存申请进程的内存申请信息以及与所述目标内存申请进程相关联的内存使用进程的内存使用信息之前,还包括:
5.根据权利要求1所述的方法,其特征在于,所述输出所述目标内存申请进程的内存申请信息和所述内存使用进程的内存使用信息之前,还包括:
6.根据权利要求1至5任一项所述的方法,其特征在于,
7.一种内存泄露检测装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
9.一种电子设备,其特征在于,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6任一项所述的内存泄露检测方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6任一项所述的内存泄露检测方法的步骤。