CN105868079B - 一种基于内存使用传播分析的Java内存低效使用检测方法 - Google Patents

一种基于内存使用传播分析的Java内存低效使用检测方法 Download PDF

Info

Publication number
CN105868079B
CN105868079B CN201610251576.4A CN201610251576A CN105868079B CN 105868079 B CN105868079 B CN 105868079B CN 201610251576 A CN201610251576 A CN 201610251576A CN 105868079 B CN105868079 B CN 105868079B
Authority
CN
China
Prior art keywords
memory
analysis
program
software
node
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.)
Expired - Fee Related
Application number
CN201610251576.4A
Other languages
English (en)
Other versions
CN105868079A (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.)
China University of Mining and Technology CUMT
Original Assignee
China University of Mining and Technology CUMT
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 China University of Mining and Technology CUMT filed Critical China University of Mining and Technology CUMT
Priority to CN201610251576.4A priority Critical patent/CN105868079B/zh
Publication of CN105868079A publication Critical patent/CN105868079A/zh
Application granted granted Critical
Publication of CN105868079B publication Critical patent/CN105868079B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种基于内存使用传播分析的Java内存低效使用检测方法。本发明提供一种基于内存使用传播分析的内存低效使用检测方法,包括下列步骤:1)对软件进行静态分析进行插桩,通过动态执行获得内存使用相关的事件信息;2)依据获得的信息进行内存使用传播分析,构建内存使用传播图;3)对内存使用传播图包含的内存使用信息进行特征分析识别,检测软件中的内存低效使用问题;4)对软件进行上下文路径分析,检测导致问题产生的根本原因,对问题进行定位和修复。本发明目前存在的测试方法不能有效检测软件内存低效使用的问题,大幅提升软件的性能和扩展性,提高了软件测试工作效率,从而更好地控制产品的质量。

Description

一种基于内存使用传播分析的Java内存低效使用检测方法
技术领域
本发明属于软件测试技术领域,且特点是发明了一种基于内存使用传播分析的Java内存低效使用检测方法。
背景技术
软件测试是一项旨在帮助软件从业者评估被测软件的质量状况的探究性活动。在完整的软件开发流程中,软件测试活动贯穿始终,占据了软件开发项目的大部分时间,需要大量的人力物力资源投入。优秀、成功的软件测试过程能够找出被测试软件产品中存在的错误、缺陷、失效和事故,从而帮助软件产品开发者对软件产品进行合理有效的修复与改善,并提高软件产品的质量,缩短开发出的软件产品与产品需求之间的差距,将开发出的软件产品的质量与功能偏差控制在可接受范围以内。
内存低效使用是指程序执行过程中存在大量冗余的内存消耗,即内存消耗与这些内存对程序正常执行带来的贡献不平衡(例如过度的内存消耗来完成简单的程序任务)。现代软件系统越来越复杂,大型框架密集型软件越来越多,使得内存低效使用问题普遍存在。大量的研究表明内存低效使用问题会影响软件的运行性能,且难以诊断和修复。随着程序的执行规模不断扩大,如果程序中的内存低效使用问题在高运行负荷下集中触发,将导致程序性能显著降低,阻碍达到预期的性能指标,甚至引发程序崩溃。因此,针对内存低效使用问题进行研究至关重要。
发明内容
本发明目的在于提供一种基于内存使用传播分析的Java内存低效使用检测方法,本发明目前存在的测试方法不能有效检测软件内存低效使用的问题,大幅提升软件的性能和可扩展性,提高了软件测试工作效率,从而更好地控制产品的质量。
为达成上述目的,本发明提出一种基于内存使用传播分析的Java内存低效使用检测方法。方法包括下列步骤:
1)内存使用相关的信息的采集,对Java程序的字节码文件进行静态分析,通过对其中与内存使用相关的语句进行插桩来进行信息获取。由于面向对象程序的内存消耗主要是对象的创建和使用所导致的,且对象由方法和字段组成。因此,获取涉及内存使用的三种事件:对象创建、方法调用和字段访问。
2)内存使用传播图(MUPG)的构建,使用步骤1)获得的内存使用信息,通过消除冗余对内存使用信息进行简化,将其聚合为内存使用传播图(MUPG, Memory UsagePropagation Profiling)。MUPG的构建包含两个部分:聚合内存使用事件和聚合循环结构。
3)特征分析,程序内存低效使用主要表现为对象内存消耗量与其带来的程序执行贡献之间的不平衡,通过内存访问率、内存利用率和临时内存分配率三类特征分析,检测程序中可能存在的内存低效使用问题;
特征分析1:内存访问率
内存访问率(Memory Access Rate, MAR)的计算公式为:
其中,表示对象类型总的被访问次数,其为方法调用次数()与字段访问次数()之和,表示创建的对象数目;
特征分析2:内存利用率
内存利用率(Memory Utilization Rate, MUR)的计算公式为:
其中,表示对象类型的有效利用时间,为该对象类型最初被利用的时间点,为该对象类型最后被利用的时间点。表示该对象类型对象总的存在时间,其中表示该对象类型最后一个对象被释放的时间点,表示该对象类型第一个对象被创建的时间点。
特征分析3:临时内存分配率
临时内存分配率(Temporary Memory Allocation Rate, TMAR)的计算公式为:
其中,表示程序执行过程中第i个GC时刻某一对象类型保持引用的对象数目()与该时刻已经创建对象数目()的比值,表示程序完整执行过程中的GC次数;
通过以上三类特征分析,检测出导致程序内存低效使用的可疑对象类型。在得到可疑对象类型之后,依据对象类型的对象数目对可疑的对象类型进行重要性排序;
4)上下文路径分析,由步骤3)得到存在内存低效使用问题的可疑对象类型之后,依据MUPG提供的上下文信息进行内存使用传播分析,研究这些对象类型受到哪些程序区域的影响,分析导致内存低效使用的程序区域。在内存使用传播分析时,对每一个路径分支计算其重要度值W,通过设置阈值,过滤掉那些对内存消耗影响较小的路径,得到造成内存低效使用的关键路径。
设节点A为待分析节点,其被多个父节点调用,B为A的一个父节点,则父节点B对子节点A的重要度值的计算公式为:
其中,表示节点B与节点A之间路径执行的次数,表示节点A与其某一父节点i之间路径执行的次数,N表示节点A的父节点的总个数。
上下文路径分析的具体过程为:将阈值、待分析节点和MUPG作为输入,路径分析结果作为输出。在路径分析过程中,设置阈值t,只有当分析节点的父节点的W值达到或超过t时,才继续对该父节点进行路径分析。最终得到造成内存低效使用的主要程序执行路径。
进一步,其中上述步骤1)的具体步骤如下:
步骤1)-1:起始状态;
步骤1)-2:对Java软件进行静态分析,对其中涉及内存使用的语句进行插桩;
步骤1)-3:执行程序,在程序执行过程中获得内存使用事件信息;
步骤1)-4:将每条内存使用事件消息的内容,时间等信息存入到数据库;
步骤1)-5:软件内存使用事件消息的获取完毕;
进一步,其中上述步骤2)的具体步骤如下:
步骤2)-1:起始状态;
步骤2)-2:从数据库中读取未进行处理过的内存使用事件消息;
步骤2)-3:依据内存使用事件的类型、事件发生所在的静态地址对获得的信息进行聚合处理;
步骤2)-4:分析聚合处理后的信息直接的依赖关系,检测其中是否存在循环结构,如果存在,对其中的循环结果进行聚合处理;
步骤2)-5:内存使用传播图生成完毕;
进一步,其中上述步骤3)的具体步骤如下:
步骤 3)-1:起始状态;
步骤3)-2:对于生成的软件内存使用传播图,通过内存访问率、内存利用率和临时内存分配率三类特征分析,检测图中的节点包含的对象集合是否存在内存低效使用问题。计算方法如下:对于内存使用传播图中的每一个节点,分析计算其三类特征值的大小:
特征值1:内存访问率
特征值2:内存利用率
特征值3:临时内存分配率
步骤 3)-3:根据软件的实际内存使用情况选定一个特征分析的阈值n;
步骤 3)-4:将各个节点的特征分析值与n进行比较,如果特征分析值小于阈值n,则将其列为存在内存低效使用问题的可疑节点;
步骤 3)-5:将所有的可疑节点按照消耗的内存大小进行排序,得到可疑内存低效使用的节点列表;
进一步,其中上述步骤4)的具体步骤如下:
步骤 4)-1:起始状态;
步骤 4)-2:读取已经获得的可疑对象类型节点报告列表;
步骤 4)-3:获得与可疑对象类型相关的重要对象创建地址(按照创建的对象数目大小进行排序)和对象使用地址(按照执行次数的大小进行排序);
步骤 4)-4:对每个可疑对象类型的对象创建地址和对象使用地址进行上下文路径分析;
步骤4)-5:在路径分析过程中通过设置阈值,计算路径分支的重要度值,获得重要路径;
步骤 4)-6:将导致内存低效使用的上下文路径信息报告给负责开发人员;
本发明使用程序插桩的方法来收集软件运行过程中的内存使用事件信息,可以有效的对程序的内存使用情况进行监控;使用内存使用传播分析的方法来研究软件运行过程中内存消耗的具体过程,并通过特征分析的方法对软件中存在内存低效使用的区域进行定位;最后对检测出的可疑对象类型进行上下文路径分析,得到导致问题产生的根本原因,帮助软件开发人员进行缺陷修复,提高了软件测试工作效率,从而更好地控制产品的质量。
附图说明
图1为本发明实施例的一种基于内存使用传播分析的Java内存低效使用检测方法的流程图。
图2为图1中软件内存使用消息的采集的流程图。
图3为图1中软件内存使用传播图构建的流程图。
图4为图1中软件特征分析的流程图。
图5为图1中软件上下文路径分析的流程图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
图1为本发明实施例的一种基于内存使用传播分析的Java内存低效使用检测方法的流程图。
一种基于内存使用传播分析的Java内存低效使用检测方法,其特征在于,包括下列步骤:
S101内存使用相关的信息的采集,对Java程序的字节码文件进行静态分析,通过对其中与内存使用相关的语句进行插桩来进行信息获取。由于面向对象程序的内存消耗主要是对象的创建和使用所导致的,且对象由方法和字段组成。因此,获取涉及内存使用的三种事件:对象创建、方法调用和字段访问。;
S103内存使用传播图的构建,使用步骤1)获得的内存使用信息,通过消除冗余对内存使用信息进行简化,将其聚合为内存使用传播图。内存使用传播图的构建包含两个部分:聚合内存使用事件和聚合循环结构;
S105特征分析,对于生成的软件内存使用传播图,通过内存访问率、内存利用率和临时内存分配率三类特征分析,检测图中的节点包含的对象集合是否存在内存低效使用问题,并对节点进行重要性排序;
S107上下文路径分析,依据特征分析得到的存在内存低效使用的可疑节点排名,对节点进行上下午路径分析,得到导致程序内存低效使用的根本原因。并将分析结果与程序源码信息结合,将详细的诊断结果报告给软件开发人员进行问题理解和修复。
图2为对内存使用相关的信息进行采集的流程图。通过对Java程序的字节码文件进行插桩,对与内存使用相关的对象创建、方法调用和变量访问三类事件进行监控,并存储到数据库中。具体步骤如下:
步骤1:起始状态;步骤2:对Java软件进行静态分析,对其中涉及内存使用的语句进行插桩;步骤3:执行程序,在程序执行过程中获得内存使用事件信息;步骤4:将每条内存使用事件消息的内容,时间等信息存入到数据库;步骤5:软件内存使用事件消息的获取完毕;
图3为构建内存使用传播图的流程图,使用步骤1)获得的内存使用信息,通过消除冗余对内存使用信息进行简化,将其聚合为内存使用传播图。具体步骤如下:
步骤1:起始状态;步骤2:从数据库中读取未进行处理过的内存使用事件消息;步骤3:依据事件的类型、事件发生所在的静态地址对获得的信息进行聚合处理;步骤4:分析聚合处理后的信息直接的依赖关系,对其中的循环结构进行聚合处理;步骤5:内存使用传播图生成完毕。
图4为特征分析的流程图。对于生成的软件内存使用传播图,通过内存访问率、内存利用率和临时内存分配率三类特征分析,检测图中的节点包含的对象集合是否存在内存低效使用问题,并对节点进行重要性排名。具体步骤如下:
步骤1:起始状态;步骤2:通过三类特征分析,得到内存使用传播图中各个节点的三类特征值大小;步骤3:根据软件的实际内存使用情况选定一个特征分析的阈值n;步骤4:将各个节点的特征值与n进行比较,找出存在内存低效使用问题的可疑节点;步骤5:将可疑节点按照内存消耗大小进行排序,得到可疑内存低效使用的节点列表;步骤6:内存使用传播图构建完毕。
图5上下文路径分析的流程图。依据特征分析得到的存在内存低效使用的可疑节点排名,对节点进行上下午路径分析,得到导致程序内存低效使用的根本原因。并将分析结果与程序源码信息结合,将详细的诊断结果报告给软件开发人员。具体步骤如下:
步骤1:起始状态;步骤2:读取获得的可疑对象类型节点报告列表;步骤3:获得可疑对象类型相关的对象创建地址和对象使用地址;步骤4:对每个可疑对象类型的对象创建地址和对象使用地址进行上下文路径分析;步骤5:在路径分析过程中通过设置阈值,计算路径分支的重要度值,获得重要路径;步骤6:将导致内存低效使用的上下文路径信息报告给负责开发人员;步骤7:上下文路径分析完毕。
综上所述,本发明解决了目前存在的软件内存低效使用问题难以检测的问题,不仅大幅提高了软件内存低效使用问题检测的效率和准确性,而且提升了软件内存问题检测的自动化程度,进而提高了软件测试工作效率,从而更好地控制产品的质量。

Claims (3)

1.一种基于内存使用传播分析的Java内存低效使用检测方法,其特征在于,首先将程序中的内存使用事件信息抽象为内存使用传播图,以此提供程序完整的内存行为,其次通过对内存行为进行特征分析识别,检测和确定程序中的内存低效使用问题,最后依据内存使用传播图提供的上下文路径信息分析导致问题产生的程序区域,自动将软件内存低效使用缺陷报告分配给对应的软件开发者,软件开发者根据软件缺陷报告定位软件缺陷,并进行修复;该方法包括下列四个步骤:
步骤1:内存使用相关的信息的采集;
对Java程序的字节码文件进行静态分析,通过对其中与内存使用相关的语句进行插桩来进行信息获取;程序的内存消耗主要是对象的创建和使用所导致的,且对象由方法和字段组成;因此,我们获取涉及内存使用的三种事件:
①对象创建;对象创建是引发堆内存消耗的直接原因,因此对对象创建事件进行监控可以分析导致程序大量内存消耗的引发点;
②方法调用;方法调用是程序执行过程中各个数据结构过程间交互的主要方式,也是对创建的对象进行利用的主要形式,因此对方法调用事件进行监控可以获得程序执行过程中各个数据结构之间的联系,分析不同程序区域在内存消耗上的关联关系,同时得到对象的使用情况;
③字段访问;对象由方法和字段两部分组成,判断对象是否被使用除了对方法调用事件进行监控外,监控字段访问也是非常重要的内容;
通过对三类内存使用事件进行监控,可以获得程序执行过程中完整的堆内存使用信息,即导致内存消耗的具体内存行为;
步骤2:内存使用传播图的构建;
在获得内存使用事件信息后,通过消除冗余对内存使用信息进行简化,将其聚合为内存使用传播图;内存使用传播图的构建包含两个部分;
(1)聚合内存使用事件
定义1:聚合内存使用事件包含以下四个关键属性,即描述、环境、输入和输出;
描述:表示软件内存使用的总体描述,用于抽象的表示软件的内存行为,分析软件的内存使用情况;
环境:包括软件运行的软件环境和硬件环境;
输入:包括获取到的三类内存使用事件信息;
输出:聚合分析后的结果;
使用步骤1获取到的内存使用事件信息,对相同事件类型根据事件发生的静态地址进行聚合,并按照描述、环境、输入、输出的格式组织起来,自动组合成一个软件内存使用模型;
(2)聚合循环结构
程序执行过程中容易出现方法间的循环调用,导致内存使用传播图中包含循环结构;使用强连通结构检测算法对其中涉及的循环结构进行检测,并使用单一节点进行表示;对于代表各个循环结构的节点,我们将其作为一个整体;与步骤1类似,对包含相同内容的循环结构节点进行分组聚合,使用单一节点进行表示;
步骤3:特征分析;
程序内存低效使用主要表现为对象内存消耗量与其带来的程序执行贡献之间的不平衡;本节通过内存访问率、内存利用率和临时内存分配率三类特征分析,检测程序中可能存在的内存低效使用问题;
特征分析1:内存访问率
在程序执行过程中,可能存在一些对象类型创建了大量对象,但这些对象却很少被使用,显然这是一种内存被低效使用的现象;内存访问率(Memory Access Rate,MAR)即为某一对象类型被访问次数与该对象类型对象数目之间的比值,比值越小,则说明该对象类型所消耗的内存被低效使用的可能性越大;MAR的计算公式为:
MAR=(MIC+FAC)/N
其中,(MIC+FAC)表示对象类型总的被访问次数,其为方法调用次数MIC与字段访问次数FAC之和,N表示创建的对象数目;
特征分析2:内存利用率
在程序执行过程中,可能存在一些对象被大量创建后,仅仅只在其生命周期的较短时间段内被利用,显然这也是一种内存被低效使用的现象;这些对象在结束利用到最后被释放的较长时间段内,将无益地耗费大量内存资源,对程序的性能造成严重影响;内存利用率(Memory Utilization Rate,MUR)即为某一对象类型的对象被实际利用的时间与总的存在时间之间的比值;MUR值的计算公式为:
MUR=(t2-t1)/(free_t-begin_t) (2)
其中,(t2-t1)表示对象类型的有效利用时间,t1为该对象类型最初被利用的时间点,t2为该对象类型最后被利用的时间点,即在[t1,t2]之外的时间段内没有任何关于该对象类型对象的利用事件发生;(free_t-begin_t)表示该对象类型对象总的存在时间,其中free_t表示该对象类型最后一个对象被释放的时间点,begin_t表示该对象类型第一个对象被创建的时间点,即在[begin_t,free_t]之外的时间段内没有任何该对象类型的对象存在;
特征分析3:临时内存分配率
大量临时对象的创建将导致昂贵的内存资源开销和频繁的垃圾收集,增加程序执行的负载;我们检测那些创建了大量对象的对象类型,如果堆内存中保持引用的对象数量远远小于其所创建对象的数量,则表明该对象类型很可能存在大量的临时对象;临时内存分配率(Temporary Memory Allocation Rate,TMAR)为各个GC时刻对象类型保持引用的对象数量与该类型总的创建数量之间比值的平均值,TMAR值越小,则说明内存被低效使用的可能性越大;TMAR值的计算公式为:
其中,(Ni/Sumi)表示程序执行过程中第i个GC时刻某一对象类型保持引用的对象数目Ni与该时刻已经创建对象数目Sumi的比值,NGC表示程序完整执行过程中的GC次数;
通过以上三类特征分析,检测出导致程序内存低效使用的可疑对象类型;在得到可疑对象类型之后,依据对象类型的对象数目对可疑的对象类型进行重要性排序;
步骤4:上下文路径分析
在得到可能存在内存低效使用问题的可疑对象类型之后,依据内存使用传播图提供的上下文信息进行内存使用传播分析,研究这些对象类型受到哪些程序区域的影响,分析导致内存低效使用的程序区域;为减少分析过程中的资源开销和获得导致内存低效使用的关键原因,对与可疑对象类型相关的重要对象创建地址按照创建的对象数目大小进行排序并按照排序顺序进行分析;对与可疑对象类型相关的对象使用地址按照执行次数的大小进行排序并按照排序顺序进行分析;同时,在路径分析时,对每一个路径分支计算其重要度值W,通过设置阈值,过滤掉那些对内存消耗影响较小的路径,得到造成内存低效使用的关键路径;
设节点A为待分析节点,其被多个父节点调用,B为A的一个父节点,则父节点B对子节点A的重要度值的计算公式为:
其中,表示节点B与节点A之间路径执行的次数,表示节点A与其某一父节点i之间路径执行的次数,N表示节点A的父节点的总个数;
上下文路径分析的具体过程为:将阈值、待分析节点和内存使用传播图作为输入,路径分析结果作为输出;在路径分析过程中,设置阈值t,只有当分析节点的父节点的W值达到或超过t时,才继续对该父节点进行路径分析;最终得到造成内存低效使用的主要程序执行路径。
2.根据权利要求1所述的基于内存使用传播分析的Java内存低效使用检测方法,其特征在于,在步骤1中,软件内存使用信息通过对软件进行静态插桩和动态执行来收集。
3.根据权利要求1所述的基于内存使用传播分析的Java内存低效使用检测方法,其特征在于,在步骤4中,在对检测出的可疑对象类型进行路径分析时,通过选定一个阈值t,只有当重要度值W大于t的节点才继续进行上下文路径分析,最终得到造成内存低效使用的主要程序执行路径。
CN201610251576.4A 2016-04-21 2016-04-21 一种基于内存使用传播分析的Java内存低效使用检测方法 Expired - Fee Related CN105868079B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610251576.4A CN105868079B (zh) 2016-04-21 2016-04-21 一种基于内存使用传播分析的Java内存低效使用检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610251576.4A CN105868079B (zh) 2016-04-21 2016-04-21 一种基于内存使用传播分析的Java内存低效使用检测方法

Publications (2)

Publication Number Publication Date
CN105868079A CN105868079A (zh) 2016-08-17
CN105868079B true CN105868079B (zh) 2019-02-26

Family

ID=56632666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610251576.4A Expired - Fee Related CN105868079B (zh) 2016-04-21 2016-04-21 一种基于内存使用传播分析的Java内存低效使用检测方法

Country Status (1)

Country Link
CN (1) CN105868079B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632929B (zh) * 2017-08-21 2020-06-05 北京京东尚科信息技术有限公司 一种检测内存泄漏的方法和装置
CN109646949B (zh) * 2017-10-11 2021-06-08 腾讯科技(深圳)有限公司 对象处理方法、装置、存储介质和电子装置
CN112148428B (zh) * 2020-09-11 2021-04-16 北京基调网络股份有限公司 一种Java虚拟机内存监控方法、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102362A1 (en) * 2010-10-22 2012-04-26 Hitachi, Ltd. Management system and management method
CN102968375A (zh) * 2012-11-30 2013-03-13 中国矿业大学 基于关联规则挖掘的不可达路径检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102362A1 (en) * 2010-10-22 2012-04-26 Hitachi, Ltd. Management system and management method
CN102968375A (zh) * 2012-11-30 2013-03-13 中国矿业大学 基于关联规则挖掘的不可达路径检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于对象引用关系的Java程序内存行为分析方法;李文杰 等;《电子学报》;20150731;第43卷(第7期);1336-1343页 *

Also Published As

Publication number Publication date
CN105868079A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
US8195720B2 (en) Detecting memory leaks
Lou et al. Mutation-based test-case prioritization in software evolution
Lou et al. A survey on regression test-case prioritization
CN105868116A (zh) 基于语义变异算子的测试用例生成和优化方法
CN108153587B (zh) 一种针对大数据平台的慢任务原因检测方法
CN105868079B (zh) 一种基于内存使用传播分析的Java内存低效使用检测方法
Chen et al. Coverage prediction for accelerating compiler testing
US8141082B2 (en) Node-based representation of multi-threaded computing environment tasks, and node-based data race evaluation
CN101853200A (zh) 一种高效动态软件漏洞挖掘方法
CN108804326A (zh) 一种软件代码自动检测方法
CN105808438A (zh) 一种基于函数调用路径的测试用例复用方法
Tsai et al. Test algebra for combinatorial testing
US6453265B1 (en) Accurately predicting system behavior of a managed system using genetic programming
Tao et al. An approach to regression test selection based on hierarchical slicing technique
CN110659199B (zh) 一种基于传递依赖的类集成测试序列生成方法
CN110162472A (zh) 一种基于fuzzing测试的测试用例生成方法
CN107203469B (zh) 基于机器学习的编译器测试加速方法
Maragathavalli et al. Automatic program instrumentation in generation of test data using genetic algorithm for multiple paths coverage
Hafez et al. Potential-fault cache-based regression test selection
Bonchi et al. A coalgebraic view on decorated traces
CN112948188A (zh) 一种日志文件筛查方法、系统及介质
Wen et al. Improving RETECS method using FP-Growth in continuous integration
Singh et al. Design and implementation of testing tool for code smell rectification using c-mean algorithm
US20040054515A1 (en) Methods and systems for modeling the performance of a processor
Wong et al. Change impact analysis with stochastic dependencies

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190226

Termination date: 20200421