基于目标机器的程序性能分析方法技术

技术编号:8452919 阅读:234 留言:0更新日期:2013-03-21 14:29
本发明专利技术提供了一种基于目标机器的程序分析方法,所述方法包括:执行待分析程序,获取待分析程序中时间热点的与性能指标相关的特征数据,所述性能指标是基于目标机器和样本程序包而选定的;获取与所述性能指标对应的性能描述标准,所述性能描述标准是针对所述目标机器和样本程序包确定的参考数据;以及比对所述特征数据和所述性能描述标准,以获得所述待分析程序针对所述目标机器的性能瓶颈。所述方法能够针对目标机器找出所述待分析程序中存在的性能瓶颈。

【技术实现步骤摘要】

本专利技术涉及软件测试技术,特别涉及一种。
技术介绍
并行程序的性能测试工具主要用于监测并行程序的性能参数,诸如执行时间、调用次数、资源利用等,为并行程序的进一步优化、并行算法质量的提高、以及系统硬件的改进提供依据。然而,现有技术中,通过分析并行程序的性能参数,进而对并行程序的性能进行的定性描述的方法仍十分欠缺。另外,随着并行程序规模的不断膨胀,性能数据的数量越来越多。随之,分析这些海量性能数据的难度也越来越大。一般来说,一个并行程序最终将通过一个目标机器来实际执行,以实现用户的指定功能。如果在实际执行所述并行程序之前,没有对所述并行程序的性能参数进行分析,以实现对所述并行程序性能参数的改进和优化,后续所述并行程序将可能在目标机器中占用过多内存、占用过大带宽,产生过大通讯延时、从而导致执行能力低,甚至无法执行的情况。因此,有待提出一种,针对目标机器对待分析程序进行分析,以找出待分析程序中存在的性能瓶颈,从而实现对待分析程序的改进和优化。
技术实现思路
本专利技术解决的问题是提出一种,针对目标机器对待分析程序进行分析,以找出待分析程序中存在的性能瓶颈,从而实现对待分析程序的改进和优化。为解决上述问题,本专利技术的实施例提供了一种,所述方法包括执行待分析程序,获取待分析程序中时间热点的与性能指标相关的特征数据,所述性能指标是基于目标机器和样本程序包而选定的;获取与所述性能指标对应的性能描述标准,所述性能描述标准是针对所述目标机器和样本程序包确定的参考数据;以及比对所述特征数据和所述性能描述标准,以获得所述待分析程序针对所述目标机器的性能瓶颈。可选地,所述时间热点的定位方法为在所述待分析程序执行过程中,通过对所述待分析程序中包含的各个函数的时间消耗进行监测和统计,找出整个程序执行过程中消耗时间超过预定标准的函数部分,并将其定位为所述待分析程序的时间热点。可选地,获取待分析程序中时间热点的与性能指标相关的特征数据的方法包括 根据所述性能指标设铬与所述时间热点中计算行为、访存行为、和通信行为相关联的计数器;以及分析所述计数器收集和统计的数据,以获得所述时间热点与所述性能指标相关的特征数据。可选地,获取所述性能描述标准的方法包括从所述样本程序包中筛选出与所述待分析程序类型接近的样本程序;获得所述样本程序的与所述性能指标相关的特征数据;以及根据目标机器的特征信息分析所述样本程序的与所述性能指标相关的特征数据,以确定与所述性能指标相关的性能描述标准。可选地,获取所述性能描述标准的方法包括通过分析所述样本程序包中的样本程序建立针对所述目标机器的程序类型和参考特征数据之间的数据关系模型;将所述待分析程序的类型输入所述数据关系模型;以及根据目标机器的特征信息分析所述数据关系模型数据输出的参考特征数据,以确定与所述性能指标相关的性能描述标准。可选地,通过比对所述特征数据和所述性能描述标准,以获得所述待分析程序针对所述目标机器的性能瓶颈的方法包括通过比对所述特征数据和所述性能描述标准,以找出偏离所述性能描述标准的特征数据;以及分析偏离所述性能描述标准的特征数据,以获得所述待分析程序针对所述目标机器的性能瓶颈。可选地,所述还包括通过分析所述待分析程序的性能瓶颈信息,以获得所述待分析程序的性能描述;以及通过分析所述待分析程序的性能描述信息,以获得所述待分析程序中性能瓶颈的优化建议。可选地,通过分析所述待分析程序的性能描述信息,以获得所述待分析程序中性能瓶颈的优化建议的方法包括根据经验库分析所述待分析程序的性能描述,以获得所述待分析程序中性能瓶颈的优化建议。可选地,所述样本程序包包含具有参考意义的高效样本程序。与现有技术相比,本专利技术的实施例具有以下优点在本专利技术的实施例中,首先,所述性能指标是针对目标机器而选定的,充分考虑到了目标机器对程序性能的影响,因此,能够有针对性地找出,对特定目标机器而言所述待分析程序的中需要被重视的特征参数,并将其选定为性能指标。其次,所述性能描述标准是根据目标机器和样本数据包确定出的能使程序在目标机器获得理想性能的一个参照标准,在确定所述参照标准时,也有考虑到目标机器的影响因素,使所确定的性能描述标准更具有参照意义。另外,通过比对所述特征数据和所述性能描述标准,以获得所述待分析程序针对所述目标机器的性能瓶颈,使得用户对待分析程序有一个比较直观和深刻的认识,从而使得用户能够针对所述性能瓶颈采取相关优化措施。附图说明图I是本专利技术一实施例中的流程图;图2是本专利技术一实施例中中各要素之间的关系不意图;图3是本专利技术一实施例中获取性能描述标准的方法流程图;图4是本专利技术另一实施例中获取性能描述标准的方法流程图;图5是本专利技术一实施例中程序类型和参考特征数据之间的数据关系模型的示意图。具体实施方式经研究专利技术人发现,同一个并行程序在不同目标机器上执行后,所出现的性能问题是不一样的,也就说不同目标机器由于其软硬件配铬的不同,对同一类型程序的性能参数要求可能是不相同的。因此,如果在对并行程序的性能参数进行分析的时候,没有考虑到目标机器的特征因素,后续在执行所述并行程序时,所述并行程序和目标机器之间可能出现不协调的状况。从而导致执行能力低,甚至出现程序无法执行的情况。针对上述问题,本专利技术的实施例提供了一种。 图I为本专利技术一实施例中的流程图。为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是本专利技术还可以采用其他不同于在此描述的其它方式来实施,因此本专利技术不受下面公开的具体实施例的限制。首先,请参考图1,执行步骤SI,执行待分析程序,获取待分析程序中时间热点的与性能指标相关的特征数据。在本专利技术的实施例中,所述时间热点的定位方法为在所述待分析程序执行过程中,通过对所述待分析程序中包含的各个函数的时间消耗进行监测和统计,找出整个程序执行过程中消耗时间超出预定标准的函数部分,并将其定位为所述待分析程序的时间热点。另外,在本专利技术的实施例中,所述时间热点可以为一个或者多个。在本专利技术的一个实施例中,所述时间热点也可以通过多次执行所述待分析程序来获得。另外,在所述时间热点定位的过程中,可以逐步获取整个待分析程序,某个进程或线程,某个函数,某个基本块或某个程序行的执行时间。需要说明的是,如图2所示,所述性能指标是基于目标机器和样本程序包而选定的,所述样本程序包包含大量具有参考意义的高效样本程序。首先,所述性能指标是根据所述样本数据包所包含的样本程序的特征数据中提取出来的,能够反映程序的性能的关键特征参数。具体来说,针对一个具体的程序实例,反映其性能的特征参数很多,例如,程序执行的时间、函数调用的次数和通信占用的比例等。虽然这些特征参数都能够在一定的意义上反映程序运行的内部特征,但是,在本专利技术的实施例中,只选择那些对待分析程序的性能瓶颈定位产生关键作用的、且具有重要分析意义的特征参数作为性能指标。其次,如前所述,目标机器是影响程序执行的重要因素之一,同样的代码在不同的目标机器上的执行结果可能大相径庭,不同的目标机器对同一代码的性能参数要求也可能不尽相同。因此,所述性能指标的选择需要考虑到目标机器的特征因素,例如,硬件配置,系统架构等。在本专利技术的实施例中,本文档来自技高网...

【技术保护点】
一种基于目标机器的程序性能分析方法,其特征在于,包括:执行待分析程序,获取待分析程序中时间热点的与性能指标相关的特征数据,所述性能指标是基于目标机器和样本程序包而选定的;获取与所述性能指标对应的性能描述标准,所述性能描述标准是针对所述目标机器和样本程序包确定的参考数据;以及比对所述特征数据和所述性能描述标准,以获得所述待分析程序针对所述目标机器的性能瓶颈。

【技术特征摘要】

【专利技术属性】
技术研发人员:范昊陈华蓉彭超吴梦歌
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1