CN102053868B - 一种内存泄露检测方法和装置 - Google Patents

一种内存泄露检测方法和装置 Download PDF

Info

Publication number
CN102053868B
CN102053868B CN200910198276.4A CN200910198276A CN102053868B CN 102053868 B CN102053868 B CN 102053868B CN 200910198276 A CN200910198276 A CN 200910198276A CN 102053868 B CN102053868 B CN 102053868B
Authority
CN
China
Prior art keywords
memory
memory block
checked
information
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910198276.4A
Other languages
English (en)
Other versions
CN102053868A (zh
Inventor
姚欣
张少华
方涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Xingyun Digital Technology Co Ltd
Original Assignee
SYNAPTIC COMP SYSTEMS SHANGHAI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SYNAPTIC COMP SYSTEMS SHANGHAI filed Critical SYNAPTIC COMP SYSTEMS SHANGHAI
Priority to CN200910198276.4A priority Critical patent/CN102053868B/zh
Publication of CN102053868A publication Critical patent/CN102053868A/zh
Application granted granted Critical
Publication of CN102053868B publication Critical patent/CN102053868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明旨在提供一种内存泄露检测方法,其中,包括以下步骤:将分配给进程的内存块根据长度划分多个内存类,分别记录每个内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息;基于每个所述内存类的内存块申请信息和内存块释放信息以及地址信息,确定内存泄露点。通过本发明所提供的方法及其相应装置,可以有效地检测到系统中的内存泄漏点,确保程序的稳定运行。

Description

一种内存泄露检测方法和装置
技术领域
本发明涉及一种内存泄露检测的方法及其装置,尤其涉及在通讯网络中的内存泄露检测方法及其装置。
背景技术
内存泄漏是程序运行时的一种常见错误。一般指由于程序设计疏忽或错误造成程序运行时未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序失去对分配给该程序的内存的控制,因而造成了内存的浪费。
大多数的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的并且使用完应当相应释放的内存。根据系统要求,内存往往被分配成划分成多个内存块,每个内存块的大小可以是任意的。如图1所示,多个内存块可以通过指针连成链,然后经过相应的内存块链头组成环,以便系统进行管理。应用程序一般使用malloc,realloc,new等函数从堆中分配到一个内存块。被分配给进程的内存块被从内存块链中摘除,并由操作系统将该内存块链接到该进程的进程控制块。而当进程运行结束时,应当调用对应的free或delete函数释放该内存块,将该内存块与进程控制块分离,重新插入内存块链。否则,该内存块就无法被其他应用程序再次使用。
如果进程向系统请求归还内存块而系统由于各种原因未能将改内存块插入内存块链,或者进程结束却由于程序设计原因未将内存块归还给系统,都有可能发生本文中提到的内存泄漏。内存泄漏会导致系统可用内存的数量,从而降低计算机的性能。如果系统不对内存泄露进行检测和处理,则可能导致随着时间的流失消耗掉越来越多的内存。最终,在最糟糕的情况下,过多的可用内存被分配掉而造成全部或部分设备停止正常工作,或者应用程序崩溃。
可见,如何有效地监控内存使用情况,及时找到内存泄露点是内存管理中需要考虑的重要问题。
发明内容
为解决现有技术中的上述问题,本发明提出了一种新的进行内存检测的方案。通过实施本发明的技术方案可以快速准确的找到当前的内存泄漏点,有效的降低可用内存块的流失,提高系统运行效率,避免系统崩溃。
根据本发明的一个具体实施例,提供了一种内存泄露检测方法,其中,包括以下步骤:a.将分配给进程的内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息;b.基于每个所述内存类的所述内存块申请信息和所述内存块释放信息以及所述地址信息,确定内存泄露点。
根据本发明的一个具体实施例,提供了一种内存泄露检测装置,其特征在于,包括:信息统计装置,用于将分配给进程的内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息;泄露点确定装置,用于基于每个所述内存类的所述内存块申请信息和所述内存块释放信息以及所述地址信息,确定内存泄露点。
根据本发明的内存检测方法和装置,可以以内存类为单位对内存块的申请和释放信息进行统计,从而高效定位内存泄漏点。尤其是尽快找到占用较多可用内存块较多的内存泄漏点。如果进一步对找到的内存泄漏点进行跟踪和错误修复,就可以有效的解决内存泄漏现象的发生,确保系统的正常运行。
附图说明
通过阅读以下参照附图对非限定性实施例所做的说明,本发明的其他方面、特征、优势将会更为明显。其中,相同或相似的参考标号表示相同或对应的特征。
图1示出了现有技术中内存块链的结构。
图2示出了根据本发明的一个具体实施例的内存泄漏检测方法的流程图;
图3示出了根据本发明的一个具体实施例的内存泄漏点确定方法的流程图;
图4示出了根据本发明的一个具体实施例的内存泄漏检测方法的流程图;
图5示出了根据本发明的一个具体实施例的内存泄漏检测装置的框图。
具体实施方式
以下参照附图对本发明中的内存泄漏检测方法进行说明。
需要说明的是,以下的各实施例中,将主要以内存块链的内存管理结构为例对本发明的技术方案展开详细描述。本领域技术人员应当了解,在现有技术中,系统也使用其它模式对内存进行管理。因此,本领据技术人员根据本文中的描述,可以不经创造性劳动的将本发明的技术方案应用于内存块链以外的其它内存管理结构,而这种应用必然落入随附权利要求书的保护范围中。
图2示出了根据本发明的一个具体实施例的内存泄漏检测方法的流程图。以下参照图2对本发明的第一方面进行的第一实施例进行详细描述。
在步骤S1中,根据内存块的长度将分配给进程的内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息。具体的,可以先划分内存类,继而借助建立内存统计表的方法完成信息统计。
本领域技术人员应当理解,本发明的技术方案通过对不同内存块分类后,以类为单位进行信息统计以实现快速定位内存泄漏点的目的。可以理解,这种方法相较现有技术中需要对进程使用的内存块逐一进行检测更为高效。优选的,可以通过内存块长度对内存进行分类。一些现有的内存分配方案会将根据内存块长度将内存块组合为多个内存块链。在内存泄漏检测中,使用同样的内存块长度分类方案对内存块进行分类,可以使程序设计更加简单,有利于程序语言的优化组织。优选的,可以以2n byte为单位对内存块长度进行分类,即将长度在2n-1至2n Byte之间的内存块归于同一类。
接着,基于上述确定的分类建立内存统计表。内存统计表中应当按类表明该类内存块的内存块申请信息和内存块释放信息。优选的,内存块申请信息为该类内存块的申请次数,内存块释放信息为该类内存块的内存块释放次数,内存块地址信息为当前内存块占用的地址信息。上述内存统计表的一个示意性的例子如表1所示:
表1:一个内存统计表
内存类(单位:byte) 内存块申请次数 内存块释放次数 内存块地址信息
0-16 46 34 [1][25]...[235]
16-32 27 16 [23][35]...[121]
32-64 14 13 [2][51]...[232]
64-128 3 3
128-256 6 6 [6][16]...[26]
256-1024 45 44 [4][42]...[79]
1024-2048 27 27 [11][38]...[41]
2048-4096 5 5
4096-8192 14 14
8192-16k 7 7
16k-32k 37 30 [8][15]...[66]
32k-64k 45 43 [5][88]...[98]
>64k 5 4 [7][38][65][235]
表1中的每一行代表一个确定类的相关信息。例如,内存块长度小于等于16byte的被计入第一行;长度大于16byte小于等于32byte的内存块计入第二行,以此类推。在本实施例中,假设进程[1]提出申请12byte内存块的请求。首先,基于长度,将其归入0-16byte一类。接着,在进程得到所需内存块后,在内存列表中将对应该类的内存块申请次数加一,同时将进程号[1]记入对应的地址信息一栏中(如表1所示)。当进程[1]任务结束正常完成内存块归还后,则将内存块释放次数加1。同时将对应的进程号[1]从内存块地址信息一栏中删除。
本例中,通过进程号[1]应当可以对应到进程[1]所申请的内存块的地址信息。应当理解,“内存块地址信息”一栏中,可以直接记录每个进程所申请内存块的物理地址,也可以记录其他可以对应到该内存块的物理地址的相关信息,例如该内存块对应的逻辑地址,进程标识号等其它信息。
在步骤S2中,基于内存统计表中的信息,确定内存泄露点。优选的,本实施例中通过比较每个内存类的内存块申请次数和内存块释放次数确定可能发生内存泄漏的内存类,然后进一步确定该内存类中的内存泄漏点。具体的,如图3所示,步骤S2还可以分为步骤S20和步骤S21两个子步骤。
首先,在步骤S20中,以类为单位,基于内存块申请信息和内存块释放信息确定待查内存块。如果同一个内存类中的内存块申请次数与内存块释放次数相同,并且内存块地址信息中没有信息保留,则认为进程所申请的该类中的内存块都已经被正常释放,没有出现内存泄漏,因此无须进一步检测。以表1为例,其中内存块长度处于64-128 byte,2048-4096 byte,4096-8192 byte,8192-16k byte之间的4个内存类的内存块申请次数与内存块释放次数相同,因此,无需对这4个内存类进一步确定内存泄漏点。而将余下的其他内存类中的内存块确定为待查内存块。
在完成待查内存块确定后,在步骤S21中,分别对每个待查内存块进行检查,进一步确定其中是否存在内存泄漏点。具体确定方法为本领域的成熟技术手段,例如,通过查找该内存块对应的进程是否存在,或记录该内存块在一定时间内是否被读取等技术手段,此处不再一一赘述。
优选的,在步骤S21中还可以设置选择条件,并且只对满足选择条件的代查内存块作进一步确定,判断其中是否存在内存泄漏点,以提高查找内存泄漏点的效率。举例来说,可以将选择条件设置为:只对长度大于第一预定值的代查内存块进行检查,确定内存泄漏点。以表1为例,如果第一预定值为32k,那么只需检查长度大于32k-64k和>64k的两个内存类即可。第一预定值的选择应当根据系统的具体情况确定。当CPU空闲率较高而内存空间相对紧张时,应当设置较小的第一预定值,从而使得尽可能都得被占用内存块被检查,以找出更多的内存泄漏点。反之,如果内存空间余量较大,而CPU的占用率较高,可以将第一预定值设置得较大,只对长度较大的待查内存块进行检查,从而相对减少对CPU的占用保证其他进程顺利完成。上述选择条件也可以设置为:对占用时间大于第二预定值的待查内存块进行检查,确定内存泄漏点。该占用时间是指待查内存块对应的当前进程所占用的时间。具体的,需要对每个内存块的占用时间进行记录。占用时间可以被记录在内存统计表中,也可以一一对应于内存块保存在内存统计表中的其他信息,例如进程号或地址信息。如果该第二预定值为2小时,则只对占用时间大于两小时的待查内存块进行检查。本领域技术人员应当理解,所谓内存泄漏的不良影响就在于造成一些内存区不再被使用又未被释放。因此,发生真正内存泄漏的待查内存块往往被占用时间较长。优选的,第二预定值的时间长度应当小于内存泄漏检测的周期。无疑这种针对内存块者占用时间的选择条件设置可以缩短找到内存泄漏点的时间,提高系统效率。上述针对待查内存块长度和待查内存块占用时间的选择条件可以分别使用,也可以结合使用。本领域技术人员理解,选择条件的设置目的在于提高检测内存泄漏点的效率,因此其具体设置包括但不限于上文中所给出的示例。
图4示出了根据本发明的一个具体实施例的内存泄漏检测方法的流程图。以下参照图4对本发明的第一方面进行的第二实施例进行详细描述。
在步骤S1中,根据内存块的物理地址将分配给进程的内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息。具体的,可以先划分内存类,继而借助建立内存统计表的方法完成信息统计。具体的,可以结合内存的物理结构进行分类。例如,对于SDRAM或DDR结构的内存,可以按内存区块(bank)分为一类。在内存分类表中,将存储在同一bank中的内存块归为同一类。同理,也可以将使用同一行(row)进行存储的内存块归为同一内存类。这样划分的优势在于,可以在完成同一类内存泄漏点查找后,统一对其中需要释放的内存块进行释放,减少了对控制线的选择次数。
接着,基于上述确定的分类建立内存统计表并执行步骤S2’。其具体操作步骤与第一实施例中对应的步骤相同,此处不再赘述。需要说明的是,本发明的关键在于通过对内存块分类,再根据确定的内存类进行统计的方法寻找内存泄漏点。其中,用于确定分类的参数包括但不限于内存块长度及内存块的物理地址。
图5示出了根据本发明的一个具体实施例的内存泄漏检测装置的框图。以下参照图5对本发明的第二方面进行的第三实施例进行详细描述。其中,内存泄漏检测装置1包括信息统计装置10和泄漏点确定装置11。
信息统计装置10根据内存块的长度将分配给进程的内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息。具体的,可以先划分内存类,继而借助建立内存统计表的方法完成信息统计。
本领域技术人员应当理解,本发明的技术方案通过对不同内存块分类后,以类为单位进行信息统计以实现快速定位内存泄漏点的目的。可以理解,这种方法相较现有技术中需要对进程使用的内存块逐一进行检测更为高效。优选的,信息统计装置10可以通过内存块长度对内存进行分类。一些现有的内存分配方案会将根据内存块长度将内存块组合为多个内存块链。在内存泄漏检测中,使用同样的内存块长度分类方案对内存块进行分类,可以使程序设计更加简单,有利于程序语言的优化组织。优选的,可以以2n byte为单位对内存块长度进行分类,即将长度在2n-1至2n Byte之间的内存块归于同一类。
信息统计装置10可以进一步基于上述确定的分类建立内存统计表。内存统计表中应当按类表明该类内存块的内存块申请信息和内存块释放信息。优选的,内存块申请信息为该类内存块的申请次数,内存块释放信息为该类内存块的内存块释放次数,内存块地址信息为当前内存块占用的地址信息。上述内存统计表的一个示意性的例子如表1所示:
表1:一个内存统计表
内存类(单位:byte) 内存块申请次数 内存块释放次数 内存块地址信息
0-16 46 34 [1][25]...[235]
16-32 27 16 [23][35]...[121]
32-64 14 13 [2][51]...[232]
64-128 3 3
128-256 6 6 [6][16]...[26]
256-1024 45 44 [4][42]...[79]
1024-2048 27 27 [11][38]...[41]
2048-4096 5 5
4096-8192 14 14
8192-16k 7 7
16k-32k 37 30 [8][15]...[66]
32k-64k 45 43 [5][88]...[98]
>64k 5 4 [7][38][65][235]
表1中的每一行代表一个确定类的相关信息。例如,内存块长度小于等于16byte的被计入第一行;长度大于16byte小于等于32byte的内存块计入第二行,以此类推。在本实施例中,假设进程[1]提出申请12byte内存块的请求。首先,基于长度,将其归入0-16byte一类。接着,在进程得到所需内存块后,在内存列表中将对应该类的内存块申请次数加一,同时将进程号[1]记入对应的地址信息一栏中(如表1所示)。当进程[1]任务结束正常完成内存块归还后,则将内存块释放次数加1。同时将对应的进程号[1]从内存块地址信息一栏中删除。
本例中,通过进程号[1]应当可以对应到进程[1]所申请的内存块的地址信息。应当理解,“内存块地址信息”一栏中,可以直接记录每个进程所申请内存块的物理地址,也可以记录其他可以对应到该内存块的物理地址的相关信息,例如该内存块对应的逻辑地址,进程标识号等其它信息。
泄漏点确定装置11用于基于内存统计表中的信息,确定内存泄露点。优选的,本实施例中通过比较每个内存类的内存块申请次数和内存块释放次数确定可能发生内存泄漏的内存类,然后进一步确定该内存类中的内存泄漏点。具体的,如图4所示,泄漏点确定装置11还进一步包括待查内存块确定装置110和检查装置111两个子装置。
待查内存块确定装置110用于以类为单位,基于内存块申请信息和内存块释放信息确定待查内存块。如果同一个内存类中的内存块申请次数与内存块释放次数相同,并且内存块地址信息中没有信息保留,则认为进程所申请的该类中的内存块都已经被正常释放,没有出现内存泄漏,因此无须进一步检测。以表1为例,其中内存块长度处于64-128byte,2048-4096 byte,4096-8192 byte,8192-16k byte之间的4个内存类的内存块申请次数与内存块释放次数相同,因此,无需对这4个内存类进一步确定内存泄漏点。而将余下的其他内存类中的内存块确定为待查内存块。
在完成待查内存块确定后,检查装置111分别对每个待查内存块进行检查,进一步确定其中是否存在内存泄漏点。具体确定方法为本领域的成熟技术手段,例如,通过查找该内存块对应的进程是否存在,或记录该内存块在一定时间内是否被读取等技术手段,此处不再一一赘述。
优选的,待查内存块确定装置110还可以被用于设置选择条件,并且只对满足选择条件的代查内存块作进一步确定,判断其中是否存在内存泄漏点,以提高查找内存泄漏点的效率。举例来说,可以将选择条件设置为:只对长度大于第一预定值的代查内存块进行检查,确定内存泄漏点。以表1为例,如果第一预定值为32k,那么只需检查长度大于32k-64k和>64k的两个内存类即可。第一预定值的选择应当根据系统的具体情况确定。当CPU空闲率较高而内存空间相对紧张时,应当设置较小的第一预定值,从而使得尽可能都得被占用内存块被检查,以找出更多的内存泄漏点。反之,如果内存空间余量较大,而CPU的占用率较高,可以将第一预定值设置得较大,只对长度较大的待查内存块进行检查,从而相对减少对CPU的占用保证其他进程顺利完成。上述选择条件也可以设置为:对占用时间大于第二预定值的待查内存块进行检查,确定内存泄漏点。该占用时间是指待查内存块对应的当前进程所占用的时间。具体的,需要对每个内存块的占用时间进行记录。占用时间可以被记录在内存统计表中,也可以一一对应于内存块保存在内存统计表中的其他信息,例如进程号或地址信息。如果该第二预定值为2小时,则只对占用时间大于两小时的待查内存块进行检查。本领域技术人员应当理解,所谓内存泄漏的不良影响就在于造成一些内存区不再被使用又未被释放。因此,发生真正内存泄漏的待查内存块往往被占用时间较长。优选的,第二预定值的时间长度应当小于内存泄漏检测的周期。无疑这种针对内存块者占用时间的选择条件设置可以缩短找到内存泄漏点的时间,提高系统效率。上述针对待查内存块长度和待查内存块占用时间的选择条件可以分别使用,也可以结合使用。本领域技术人员理解,选择条件的设置目的在于提高检测内存泄漏点的效率,因此其具体设置包括但不限于上文中所给出的示例。
上述实施里还拥有变化例,即本发明的第二方面第四实施例。下文将结合图5对第四实施例进行详细描述。其中,内存泄漏检测装置1同样可以包括信息统计装置10和泄漏点确定装置11。
信息统计装置10用于根据内存块的物理地址将分配给进程的内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及每个内存块的地址信息。具体的,可以先划分内存类,继而借助建立内存统计表的方法完成信息统计。具体的,可以结合内存的物理结构进行分类。例如,对于SDRAM或DDR结构的内存,可以按内存区块(bank)进行分类。在内存分类表中,将存储在同一个bank中的内存块归为同一类。同理,也可以将同一行(row)的内存块归为同一内存类。这样划分的优势在于,可以在完成同一类内存泄漏点查找后,统一对其中需要释放的内存块进行释放,减少了对控制线的选择次数。
信息统计装置10的其余结构和用途,以及泄漏点确定装置11的具体结构用途与第四实施例中相应的装置对应,此处不再赘述。需要说明的是,本发明的关键在于通过对内存块分类,再根据确定的内存类进行统计的方法寻找内存泄漏点。其中,用于确定分类的参数包括但不限于内存块长度及内存块的物理地址。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。

Claims (14)

1.一种内存泄露检测方法,其中,包括以下步骤:
a.将分配给进程的多个内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及所述内存类中的每个内存块的地址信息,所述内存块申请信息为所述内存类中的各个内存块的申请次数,所述内存块释放信息为所述内存类中的各个内存块的释放次数,其中,当一个进程得到所述内存类中的一个内存块时,将所述申请次数加1,并且在该进程归还所述内存类中的该内存块之后,将所述释放次数加1;
b.以内存类为单位,基于所述内存块申请信息和所述内存块释放信息确定待查内存类,并将所述待查内存类中的各个内存块确定为待查内存块;以及
c.分别检查所述待查内存块,并根据所述待查内存块对应的地址信息确定内存泄露点。
2.根据权利要求1所述的内存泄露检测方法,其特征在于,所述步骤a包括:
-根据内存块长度将分配给所述进程的多个内存块划分多个所述内存类。
3.根据权利要求2所述的内存泄露检测方法,其特征在于,所述步骤a包括:
-定义内存统计表,用于以所述内存类为单位记录所述内存块申请信息和所述内存块释放信息。
4.根据权利要求1所述的内存泄露检测方法,其特征在于,所述步骤b包括:
-将所述释放次数与所述申请次数不相等的所述内存类中的各个内存块确定为所述待查内存块。
5.根据权利要求4所述的内存泄露检测方法,其特征在于,所述内存统计表以所述内存类为单位记录所述内存块的地址信息。
6.根据权利要求5所述的内存泄露检测方法,其特征在于,所 述内存统计表记录每个所述内存块的长度,所述步骤c还包括:
-对所述长度大于第一预定值的所述待查内存块进行检查,确定内存泄露点。
7.根据权利要求5所述的内存泄露检测方法,其特征在于,所述内存统计表记录每个所述内存块的占用时间,所述步骤c还包括:
-对所述占用时间大于第二预定值的所述待查内存块进行检查,确定内存泄露点。
8.一种内存泄露检测装置,其特征在于,包括:
信息统计装置,用于将分配给进程的多个内存块划分多个内存类,分别记录每个所述内存类的内存块申请信息和内存块释放信息,以及所述内存类中的每个内存块的地址信息,所述内存块申请信息为所述内存类中的各个内存块的申请次数,所述内存块释放信息为所述内存类中的各个内存块的释放次数,其中,当一个进程得到所述内存类中的一个内存块时,将所述申请次数加1,并且在该进程归还所述内存类中的该内存块之后,将所述释放次数加1;
泄露点确定装置,其包括:
待查内存块确定装置,用于以内存类为单位,基于所述内存块申请信息和所述内存块释放信息确定待查内存类,并将所述待查内存类中的各个内存块确定为待查内存块;以及
检查装置,用于分别检查所述待查内存块,并根据所述待查内存块对应的地址信息确定内存泄露点。
9.根据权利要求8所述的内存泄露检测装置,其特征在于,所述信息统计装置还用于根据内存块长度将分配给所述进程的多个内存块划分多个所述内存类。
10.根据权利要求9所述的内存泄露检测装置,其特征在于,所述信息统计装置还用于定义内存统计表,用于以所述内存类为单位记录所述内存块申请信息和所述内存块释放信息。
11.根据权利要求8所述的内存泄露检测装置,其特征在于,所述待查内存块确定装置还用于将所述释放次数与所述申请次数不相 等的内存类中的各个内存块确定为所述待查内存块。
12.根据权利要求11所述的内存泄露检测装置,其特征在于,所述内存统计表以所述内存类为单位记录所述内存块的地址信息。
13.根据权利要求12所述的内存泄露检测装置,其特征在于,所述内存统计表记录每个所述内存块的长度,所述检查装置还用于对所述长度大于第一预定值的所述待查内存块进行检查,确定内存泄露点。
14.根据权利要求12所述的内存泄露检测装置,其特征在于,所述内存统计表记录每个所述内存块的占用时间,所述检查装置还用于对所述占用时间大于第二预定值的所述待查内存块进行检查,确定内存泄露点。
CN200910198276.4A 2009-11-04 2009-11-04 一种内存泄露检测方法和装置 Active CN102053868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910198276.4A CN102053868B (zh) 2009-11-04 2009-11-04 一种内存泄露检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910198276.4A CN102053868B (zh) 2009-11-04 2009-11-04 一种内存泄露检测方法和装置

Publications (2)

Publication Number Publication Date
CN102053868A CN102053868A (zh) 2011-05-11
CN102053868B true CN102053868B (zh) 2016-08-10

Family

ID=43958221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910198276.4A Active CN102053868B (zh) 2009-11-04 2009-11-04 一种内存泄露检测方法和装置

Country Status (1)

Country Link
CN (1) CN102053868B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700968A (zh) * 2016-01-11 2016-06-22 厦门雅迅网络股份有限公司 一种嵌入式系统中内存泄漏诊断处理的方法和装置
CN106354627A (zh) * 2016-07-21 2017-01-25 努比亚技术有限公司 一种应用程序内存泄漏的检测方法及系统
CN107102922B (zh) * 2017-04-01 2020-08-07 北京三快在线科技有限公司 内存检测方法、装置及电子设备
CN108108258B (zh) * 2017-12-29 2020-11-06 杭州迪普科技股份有限公司 一种内存泄露的修复方法和装置
CN108984295B (zh) * 2018-06-19 2020-08-07 珠海全志科技股份有限公司 内存回收方法、计算机装置及计算机可读存储介质
CN110851281A (zh) * 2019-11-13 2020-02-28 北京无限光场科技有限公司 检测内存泄漏的方法、服务器、终端、系统及存储介质
CN111506500B (zh) * 2020-04-09 2023-05-23 北京奇艺世纪科技有限公司 内存泄露检测方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466057A (zh) * 2002-06-20 2004-01-07 华为技术有限公司 一种软件内存泄露的检查方法
CN1556475A (zh) * 2004-01-02 2004-12-22 中兴通讯股份有限公司 嵌入式实时操作系统中内存释放的方法
CN1794203A (zh) * 2005-12-29 2006-06-28 兆日科技(深圳)有限公司 一种定位无操作系统的嵌入式系统内存泄露的简易方法
CN1996258A (zh) * 2006-12-28 2007-07-11 武汉虹旭信息技术有限责任公司 一种动态内存池的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466057A (zh) * 2002-06-20 2004-01-07 华为技术有限公司 一种软件内存泄露的检查方法
CN1556475A (zh) * 2004-01-02 2004-12-22 中兴通讯股份有限公司 嵌入式实时操作系统中内存释放的方法
CN1794203A (zh) * 2005-12-29 2006-06-28 兆日科技(深圳)有限公司 一种定位无操作系统的嵌入式系统内存泄露的简易方法
CN1996258A (zh) * 2006-12-28 2007-07-11 武汉虹旭信息技术有限责任公司 一种动态内存池的实现方法

Also Published As

Publication number Publication date
CN102053868A (zh) 2011-05-11

Similar Documents

Publication Publication Date Title
CN102053868B (zh) 一种内存泄露检测方法和装置
US6895464B2 (en) Flash memory management system and method utilizing multiple block list windows
CN102722432B (zh) 追踪内存访问的方法和装置
Jeong et al. A fast built-in redundancy analysis for memories with optimal repair rate using a line-based search tree
CN109189405A (zh) 一种验证程序Flash数据一致性的方法及系统
CN103123604A (zh) 跟踪数据处理系统的内存使用的方法
CN109656779A (zh) 内存监控方法、装置、终端和存储介质
CN107066498A (zh) 键值kv存储方法和装置
US20070195618A1 (en) Memory device fail summary data reduction for improved redundancy analysis
CN104252419B (zh) 一种内存分配的方法及装置
Wang et al. Extending the lifetime of NAND flash memory by salvaging bad blocks
CN102298543A (zh) 一种存储器管理方法和装置
Ha et al. A read-disturb management technique for high-density NAND flash memory
CN102866953A (zh) 存储管理系统及其存储管理方法
CN100449492C (zh) Linux系统下物理内存的测试方法
CN107729182B (zh) 数据存储和访问的方法及装置
CN103699681B (zh) 数据回滚的处理方法和装置
CN105718328B (zh) 存储器坏区的数据备份方法及系统
US6675323B2 (en) Incremental fault dictionary
CN102156631B (zh) 程序设计语言中管理指针的方法及系统
CN100410889C (zh) 物理存储器的测试方法
CN100576348C (zh) 决定内存模块修补方案之方法及测试装置
CN112631821A (zh) 内存故障检测定位方法、装置、计算机设备及存储介质
CN106649134A (zh) 一种内存分配调度的方法和装置
CN102722454B (zh) 一种磁盘保护方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: Ding Ying

Document name: Notification of Passing Examination on Formalities

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200813

Address after: Room 834, Caiying building, No. 99, Tuanjie Road, yanchuangyuan, Jiangbei new district, Nanjing City, Jiangsu Province

Patentee after: Suning financial technology (Nanjing) Co.,Ltd.

Address before: Shanghai city 201203 Bibo Road, Zhangjiang hi tech Park No. 690 Building 5 room 501-1

Patentee before: SYNACAST COMPUTER SYSTEM (SHANGHAI) Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 834, Yingying building, No.99, Tuanjie Road, yanchuangyuan, Jiangbei new district, Nanjing, Jiangsu Province

Patentee after: Nanjing Xingyun Digital Technology Co.,Ltd.

Address before: Room 834, Yingying building, 99 Tuanjie Road, yanchuangyuan, Jiangbei new district, Nanjing, Jiangsu 210000

Patentee before: Suning financial technology (Nanjing) Co.,Ltd.