CN109542793B - 一种程序性能分析方法及装置 - Google Patents
一种程序性能分析方法及装置 Download PDFInfo
- Publication number
- CN109542793B CN109542793B CN201811455803.0A CN201811455803A CN109542793B CN 109542793 B CN109542793 B CN 109542793B CN 201811455803 A CN201811455803 A CN 201811455803A CN 109542793 B CN109542793 B CN 109542793B
- Authority
- CN
- China
- Prior art keywords
- sampling
- time
- program
- target program
- marking
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种程序性能分析方法及装置,其中,该方法包括:获取目标程序;确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。本申请实施例通过在多个采样时间段内对目标程序进行多次采样,得到目标程序在不同位置上的样本结果,并最终确定所述目标程序的运行性能,增加了采样样本的丰富性,以根据采样样本得到更准确的目标程序性能的分析结果。
Description
技术领域
本申请涉及软件测试技术领域,具体而言,涉及一种程序性能分析方法及装置。
背景技术
随着电子技术的广泛应用,产生了专门提供计算机所需软件的新兴工业部门及新兴商品,即计算机程序。计算机程序通常是一个指令序列,从外部设备,尤其是硬盘,被加载到计算机里,指令序列顺序执行,以完成相应的命令。
计算机程序可以实现的功能非常广泛,所以对计算机程序的检查维护尤为重要。现有技术中,通常是对要维护的计算机程序进行固定周期的采样,例如,对一段程序在固定时间间隔内,如每隔10ms对目标程序进行一次采样,获取采样位置上包含该程序的调用栈、进程号、线程号以及调用栈中执行的指令等可以表征程序性能的样本,并通过采集的这些样本来分析程序性能。
但上述对计算机程序的采样方法只能获取一段时间内的少量样本,因为采样时间间隔的长度目前无法进一步减短,并且更短的采样时间间隔会影响原本程序的进行。所以,按照现有的采样方法,很难准确检查出计算机程序的运行性能。
发明内容
有鉴于此,本申请实施例的目的在于提供一种程序性能分析方法及装置,通过增加对目标程序进行采样的样本数量,提高对目标程序性能分析的准确性。
第一方面,本申请实施例提供了一种程序性能分析方法,其中,包括:
获取目标程序;
确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;
在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;
根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述在所述每个采样时间段中对所述目标程序进行采样,包括:
在所述目标程序运行过程中,当所述目标程序运行到第一程序位置时,若检测到所述第一程序位置对应的运行时间被标记为所述采样起始时刻,则对所述目标程序进行采样;
在对所述目标程序进行采样的过程中,当所述目标程序运行到第二程序位置时,若检测到所述第二程序位置对应的运行时间被标记为采样终止时刻,则停止对所述目标程序的采样。
结合第一方面第一可能的实施方式,本申请实施例提供了第一方面的第二种可能的实施方式,其中,根据以下步骤标记所述采样起始时刻和所述采样终止时刻:
所述目标程序在运行到所述第一程序位置时,生成第一标记文件,其中,所述第一标记文件的生成时间为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,生成第二标记文件,其中,所述第二标记文件的生成时间为所述采样终止时刻;
所述方法还包括:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
结合第一方面的第一可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,根据以下步骤标记所述采样起始时刻和所述采样终止时刻:
所述目标程序在运行到所述第一程序位置时,检测到第一标记信号并将所述第一标记信号的接收时间标记为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,检测到第二标记信号并将所述第二标记信号的接收时间标记为所述采样终止时刻;
所述方法还包括:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果,包括:
当检测到所述每个采样时间段中对所述目标程序进行采样时所对应的采样时钟是否与系统时钟不同步时,对所述采样时钟按照对应的所述系统时钟进行校准;
按照校准后的采样时钟,确定经校准后的所述每个采样时间段所包含的采样起始时刻和采样终止时刻;
将在所述每个采样时间段经校准后的采样起始时刻和采样终止时刻之间对所述目标程序进行采样的样本,作为所述每个采样时间段对应的采样结果。
第二方面,本申请实施例还提供一种程序性能分析装置,包括:
获取模块,用于获取目标程序;
时间确定模块,用于确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;
采样模块,用于在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;
性能确定模块,用于根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述采样模块包括:
采样起始单元,用于在所述目标程序运行过程中,当所述目标程序运行到第一程序位置时,若检测到所述第一程序位置对应的运行时间被标记为所述采样起始时刻,则对所述目标程序进行采样;
采样停止单元,用于在对所述目标程序进行采样的过程中,当所述目标程序运行到第二程序位置时,若检测到所述第二程序位置对应的运行时间被标记为采样终止时刻,则停止对所述目标程序的采样。
结合第二方面第一种可能的实施方式,本申请实施例提供了第二方面的第二种可能的实施方式,其中,所述装置还包括标记模块,所述标记模块具体用于:
所述目标程序在运行到所述第一程序位置时,生成第一标记文件,其中,所述第一标记文件的生成时间为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,生成第二标记文件,其中,所述第二标记文件的生成时间为所述采样终止时刻;
所述标记模块还用于:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本申请实施例提供的一种程序性能分析方法及装置,首先获取目标程序,并确定目标程序每次运行的过程中对目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同,然后,在所述每个采样时间段中对所述目标程序进行采样,得到每个采样时间短对应的采样结果,最后,根据每个采样时间段对应的采样结果,确定目标程序的运行性能。本申请提供的一种程序性能分析方法通过对目标程序确定多个采样时间段,并在多个采样时间段内对目标程序进行采样,且每个采样时间段的采样起始时刻所对应在目标程序上的位置都是不同的。经过多个采样时间段的采样后,可以获得目标程序上更多位置的采样结果,增加了对目标程序进行检测分析的样本数量,可以获取目标程序对应的更多位置上的采样结果,以较为精确的分析目标程序的运行性能。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种程序性能分析方法的流程图;
图2示出了本申请实施例所提供的一种程序性能分析方法的优化流程图;
图3示出了本申请实施例所提供的一种程序性能分析装置的结构示意图;
图4示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请实施例中的方法的应用场景进行介绍。本申请实施例中分析的程序可以应用在各种使用软件的场景,尤其可以应用在无人驾驶领域中的无人驾驶汽车系统。无人驾驶汽车的驾驶系统一般需要实现感知、规划和控制的功能,其中,各个功能的实现需要驾驶系统中的软件程序准确且高效的运行。为了保证程序的准确且高效的运行,需要对运行中的程序进行采样,并根据获取的采样样本对程序性能进行分析。
现有技术中,通常通过对程序进行固定周期的采样,例如,对一段程序在固定时间间隔内,如每隔10ms对目标程序进行一次采样,获取采样位置上包含该程序的调用栈、进程号、线程号以及调用栈中执行的指令等可以表征程序性能的程序内容的样本,并通过这些采集的样本来分析程序性能。但现有的采样方法存在采样时间间隔上限,即采样时间间隔的长度目前无法进一步减短,并且更短的采样时间间隔会影响原本程序的进行。所以,现有的采样方法中所获取的关于目标程序的样本量太少,难以检查出目标程序可能存在的性能问题。
基于上述问题,本申请实施例提供一种程序采样方法,如图1所示,其中,包括:
S101,获取目标程序。
这里,应用程序可以是存储在服务器中或者存储在远端设备中,以在需要采样时直接调用,也可以由其它设备发送需要采样的应用程序至服务器,以对该目标程序进行采样。
具体的,可以通过触发的方式使应用程序运行。应用程序在运行的过程中,选择其中某一时间节点开始的在某一段时间内运行的程序为目标程序。
或者,当需要分析已经确定的某一段目标程序时,当应用程序运行至需要采样的目标函数时,将此时的待分析性能的函数对应的程序确定为目标程序。
S102,确定目标程序每次运行的过程中对目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同。
这里,在获取了目标程序以后,对目标程序进行反复多次的运行,并在每一次运行时,确定采样的采样时间段。采样时间段一般是指对目标程序进行采样的时间段,采样时间段包括采样起始时刻和采样终止时刻。
在各个采样时间段内对目标程序进行采样时,首先,在采样起始时刻时,对目标程序进行采样,并在采样终止时刻时停止本次采样时间段内的采样。每个采样时间段的采样起始时间对应在目标程序上的采样位置也是不重复的,以保证每个采样时间段内对目标程序进行采样的采样位置基本都不重复。
S103,在每个采样时间段中对目标程序进行采样,得到每个采样时间段对应的采样结果。
这里,在上述确定了各个采样时间段后,在每个采样时间段中对目标程序进行采样,获得每个时间段内包括的对目标程序进行采样的采样结果。采样的方法包括基于操作系统内核提供的采样功能进行采样,基于系统时钟信号的采样功能进行采样以及由目标程序接收外部程序发送的采样信号之后进行采样。
具体的,在目标程序运行的过程中,在确定了每个采样时间段的采样起始时刻和采样终止时刻的同时,在采样起始时刻开始对目标程序进行采样。其中,当目标程序运行到第一程序位置时,当检测到第一程序位置对应的运行时间被标记为采样起始时刻,则对目标程序进行采样,同样的,当目标程序运行到第二程序位置时,检测到第二程序位置对应的运行时间被标记为采样终止时刻时,则停止对目标程序的采样。
这里,对采样起始时刻的标记方法主要是通过目标程序在运行到前述的第一程序位置时,目标程序生成第一标记文件,并将目标程序生成第一标记文件的时间作为采样起始时刻。其中,确定的采样起始时刻对应的第一程序位置就为本段采样时间段开始采样的首个位置。
同上,对采样终止时刻的标记方法主要是通过目标程序在运行到前述的第二程序位置时,目标程序生成第二标记文件,并将目标程序生成第二标记文件的时间确定为采样终止时刻。每个采样时间段中包含的采样终止时刻应当在采样起始时刻之后,则对应的在目标程序上的采样的停止位置也应当在采样的起始位置之后。其中,确定的采样终止时刻对应的第二程序位置就为本段采样时间段停止采样的最终位置。
另外,采样起始时刻和采样终止时刻的标记方法还可以根据以下方法:
当目标程序运行到第一程序位置时,检测到第一标记信号并将第一标记信号的接收时间标记为采样起始时刻。这里,第一标记信号由操作系统随机发出,目标程序接收到该第一标记信号的时间就是采样起始时刻。同时,确定的采样起始时刻对应的第一程序位置就为本段采样时间段的采样的起始位置。
同样的,当目标程序运行到第二程序位置时,检测到第二标记信号并将第二标记信号的接收时间标记为采样终止时刻。这里的第二标记信号也是由操作系统随机发出的。根据目标程序接收到第二标记信号的时间确定采样终止时刻,并与采样起始时刻一起组成采样时间段。
另外,目标程序在直接输出的输出数据中,也可以直接标识采样起始时刻和采样终止时刻。具体的,目标程序在标准输出、文件输出或网络输出等输出数据中直接标识采样起始时刻和采样终止时刻。当目标程序运行至对应的被标识的输出数据时,则启动采样,同时,当运行至下一个被标识的输出数据时,则停止采样。
对目标程序进行采样所得到的采样结果包括多个采样时间段中包含的每一个采样时刻对应的采样位置上的进程号、线程号、调用栈以及调用栈上的执行指令等。
S104,根据每个采样时间段对应的采样结果,确定目标程序的运行性能。
这里,将目标程序在多个采样时间段内进行的多次采样获取的样本按照采样时对应在目标程序上的位置进行排列,其中,每个样本与对应的采样位置均存在对应关系。此时,将在多个采样时间段内获得的多个采样样本合成样本集,并根据样本集中的采样结果,如采集的每一个采样时刻对应的目标程序的调用栈、进程号、线程号和调用栈上执行的指令,分析并确定目标程序的运行性能。
采用上述程序采样方法,通过获取目标程序,并确定对目标程序进行多次采样的采样时间段,其中,每个采样时间段对应在目标程序上的采样起始位置均不同,并在每个采样时间段中对目标程序进行采样,得到每个采样时间段对应的采样结果,以分析确定目标程序的性能。多次确定采样时间段并对同一段目标程序多次采样,增加针对目标程序获得的样本数量,获取更多可以反映程序运行性能的样本,以得到更详细的目标程序性能分析结果,提高对目标程序分析的准确性。
如图2所示,本申请实施例提供的一种程序采样方法的优化流程图,是对上述步骤S103的细化步骤,其中:
S201,当检测到每个采样时间段中对目标程序进行采样时所对应的采样时钟是否与系统时钟不同步时,对采样时钟按照对应的系统时钟进行校准。
这里,在对目标程序进行采样时,每次采样的过程均对应着相应的采样时钟。采样时钟可能与系统时钟存在着时间误差,所以需要对采样时对应的采样时钟与相应的系统时钟进行对比,并在采样时钟不准确时,对采样时钟进行校准。
S202,按照校准后的采样时钟,确定经校准后的每个采样时间段所包含的采样起始时刻和采样终止时刻。
具体的,当检测到每个采样时间段中对目标程序进行采样时对应的采样时钟与系统时钟不同步时,对采样时钟按照对应的系统时钟进行校准。并且按照校准后的采样时钟,确定校准后的每个采样时间段中所包含的采样起始时刻和采样终止时刻。
S203,将在每个采样时间段经校准后的采样起始时刻和采样终止时刻之间对目标程序进行采样的样本,作为每个采样时间段对应的采样结果。
这里,若采样时钟与系统时钟存在不同步的情况,则判断采样后获取的样本是否在校准后的采样起始时刻和采样终止时刻之间的采样时间段内。并将在每个采样时间段经校准后的采样起始时刻和采样终止时刻之间对目标程序进行采样的样本,作为每个采样时间段对应的采样结果。
基于同一发明构思,本申请实施例中还提供了与一种程序性能分析方法对应的一种程序性能分析装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述一种程序性能分析方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,为本申请实施例提供的一种程序性能分析装置,其中,包括:
获取模块301,用于获取目标程序;
时间确定模块302,用于确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;
采样模块303,用于在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;
性能确定模块304,用于根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。
其中,所述采样模块303包括:
采样起始单元,用于在所述目标程序运行过程中,当所述目标程序运行到第一程序位置时,若检测到所述第一程序位置对应的运行时间被标记为所述采样起始时刻,则对所述目标程序进行采样;
采样停止单元,用于在对所述目标程序进行采样的过程中,当所述目标程序运行到第二程序位置时,若检测到所述第二程序位置对应的运行时间被标记为采样终止时刻,则停止对所述目标程序的采样。
其中,所述装置还包括标记模块,所述标记模块具体用于:
所述目标程序在运行到所述第一程序位置时,生成第一标记文件,其中,所述第一标记文件的生成时间为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,生成第二标记文件,其中,所述第二标记文件的生成时间为所述采样终止时刻;
所述标记模块还用于:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
本实施例中,获取模块301、时间确定模块302、采样模块303和性能确定模块304的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
如图4所示,为本申请实施例提供的电子设备的装置示意图,该装置包括处理器41、存储器42和总线43,所述存储器42存储执行指令,当所述装置运行时,所述处理器41与所述存储器42之间通过总线43通信,所述处理器41执行所述执行指令使得所述装置执行如下方法:
获取目标程序;
确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;
在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;
根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。
可选地,所述处理器41执行的所述方法中,所述在所述每个采样时间段中对所述目标程序进行采样,包括:
在所述目标程序运行过程中,当所述目标程序运行到第一程序位置时,若检测到所述第一程序位置对应的运行时间被标记为所述采样起始时刻,则对所述目标程序进行采样;
在对所述目标程序进行采样的过程中,当所述目标程序运行到第二程序位置时,若检测到所述第二程序位置对应的运行时间被标记为采样终止时刻,则停止对所述目标程序的采样。
可选地,所述处理器41执行的所述方法中,根据以下步骤标记所述采样起始时刻和所述采样终止时刻:
所述目标程序在运行到所述第一程序位置时,生成第一标记文件,其中,所述第一标记文件的生成时间为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,生成第二标记文件,其中,所述第二标记文件的生成时间为所述采样终止时刻;
所述方法还包括:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
可选地,所述处理器41执行的所述方法中,根据以下步骤标记所述采样起始时刻和所述采样终止时刻:
所述目标程序在运行到所述第一程序位置时,检测到第一标记信号并将所述第一标记信号的接收时间标记为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,检测到第二标记信号并将所述第二标记信号的接收时间标记为所述采样终止时刻;
所述方法还包括:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
可选地,所述处理器41执行的所述方法中,所述在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果,包括:
当检测到所述每个采样时间段中对所述目标程序进行采样时所对应的采样时钟是否与系统时钟不同步时,对所述采样时钟按照对应的所述系统时钟进行校准;
按照校准后的采样时钟,确定经校准后的所述每个采样时间段所包含的采样起始时刻和采样终止时刻;
将在所述每个采样时间段经校准后的采样起始时刻和采样终止时刻之间对所述目标程序进行采样的样本,作为所述每个采样时间段对应的采样结果。
对应于图1中的一种程序性能分析方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述一种程序性能分析方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述一种程序性能分析方法,从而很大程度上的克服采样上限的问题,进而达到提高采样频率的效果。
本申请实施例所提供的一种程序性能分析方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种程序性能分析方法,其特征在于,包括:
获取目标程序;
对所述目标程序进行反复多次的运行,确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;所述采样起始时刻由操作系统随机发出的第一标记信号决定;
在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;
根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。
2.根据权利要求1所述的方法,其特征在于,所述在所述每个采样时间段中对所述目标程序进行采样,包括:
在所述目标程序运行过程中,当所述目标程序运行到第一程序位置时,若检测到所述第一程序位置对应的运行时间被标记为所述采样起始时刻,则对所述目标程序进行采样;
在对所述目标程序进行采样的过程中,当所述目标程序运行到第二程序位置时,若检测到所述第二程序位置对应的运行时间被标记为采样终止时刻,则停止对所述目标程序的采样。
3.根据权利要求2所述的方法,其特征在于,根据以下步骤标记所述采样起始时刻和所述采样终止时刻:
所述目标程序在运行到所述第一程序位置时,生成第一标记文件,其中,所述第一标记文件的生成时间为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,生成第二标记文件,其中,所述第二标记文件的生成时间为所述采样终止时刻;
所述方法还包括:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
4.根据权利要求2所述的方法,其特征在于,根据以下步骤标记所述采样起始时刻和所述采样终止时刻:
所述目标程序在运行到所述第一程序位置时,检测到第一标记信号并将所述第一标记信号的接收时间标记为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,检测到第二标记信号并将所述第二标记信号的接收时间标记为所述采样终止时刻;
所述方法还包括:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
5.根据权利要求1所述的方法,其特征在于,所述在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果,包括:
当检测到所述每个采样时间段中对所述目标程序进行采样时所对应的采样时钟是否与系统时钟不同步时,对所述采样时钟按照对应的所述系统时钟进行校准;
按照校准后的采样时钟,确定经校准后的所述每个采样时间段所包含的采样起始时刻和采样终止时刻;
将在所述每个采样时间段经校准后的采样起始时刻和采样终止时刻之间对所述目标程序进行采样的样本,作为所述每个采样时间段对应的采样结果。
6.一种程序性能分析装置,其特征在于,包括:
获取模块,用于获取目标程序;
时间确定模块,用于对所述目标程序进行反复多次的运行,确定所述目标程序每次运行的过程中对所述目标程序进行采样的采样时间段,其中,每个采样时间段的采样起始时刻对应在目标程序上的采样位置不同;所述采样起始时刻由操作系统随机发出的第一标记信号决定;
采样模块,用于在所述每个采样时间段中对所述目标程序进行采样,得到所述每个采样时间段对应的采样结果;
性能确定模块,用于根据所述每个采样时间段对应的采样结果,确定所述目标程序的运行性能。
7.根据权利要求6所述的装置,其特征在于,所述采样模块包括:
采样起始单元,用于在所述目标程序运行过程中,当所述目标程序运行到第一程序位置时,若检测到所述第一程序位置对应的运行时间被标记为所述采样起始时刻,则对所述目标程序进行采样;
采样停止单元,用于在对所述目标程序进行采样的过程中,当所述目标程序运行到第二程序位置时,若检测到所述第二程序位置对应的运行时间被标记为采样终止时刻,则停止对所述目标程序的采样。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括标记模块,所述标记模块具体用于:
所述目标程序在运行到所述第一程序位置时,生成第一标记文件,其中,所述第一标记文件的生成时间为所述采样起始时刻;
所述目标程序在运行到所述第二程序位置时,生成第二标记文件,其中,所述第二标记文件的生成时间为所述采样终止时刻;
所述标记模块还用于:
将所述第一程序位置对应的运行时间标记为所述采样起始时刻,以及将所述第二程序位置对应的运行时间标记为所述采样终止时刻。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5任一所述的程序性能分析方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5任意一项所述的程序性能分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811455803.0A CN109542793B (zh) | 2018-11-30 | 2018-11-30 | 一种程序性能分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811455803.0A CN109542793B (zh) | 2018-11-30 | 2018-11-30 | 一种程序性能分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542793A CN109542793A (zh) | 2019-03-29 |
CN109542793B true CN109542793B (zh) | 2022-06-14 |
Family
ID=65852063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811455803.0A Active CN109542793B (zh) | 2018-11-30 | 2018-11-30 | 一种程序性能分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542793B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408862A (zh) * | 2007-10-12 | 2009-04-15 | 李周 | 一种嵌入式系统测试方法 |
CN104111890A (zh) * | 2014-07-29 | 2014-10-22 | 北京航空航天大学 | 一种实时性能测试方法与系统 |
CN104866416A (zh) * | 2014-02-25 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 实现应用程序性能分析的方法和装置 |
CN105242873A (zh) * | 2014-06-27 | 2016-01-13 | 阿里巴巴集团控股有限公司 | 云计算系统的性能数据的采集与存储方法及装置 |
CN106227671A (zh) * | 2016-08-05 | 2016-12-14 | 网易(杭州)网络有限公司 | 程序运行性能分析方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013105366A (ja) * | 2011-11-15 | 2013-05-30 | Hitachi Ltd | プログラム解析システム及び方法 |
-
2018
- 2018-11-30 CN CN201811455803.0A patent/CN109542793B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408862A (zh) * | 2007-10-12 | 2009-04-15 | 李周 | 一种嵌入式系统测试方法 |
CN104866416A (zh) * | 2014-02-25 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 实现应用程序性能分析的方法和装置 |
CN105242873A (zh) * | 2014-06-27 | 2016-01-13 | 阿里巴巴集团控股有限公司 | 云计算系统的性能数据的采集与存储方法及装置 |
CN104111890A (zh) * | 2014-07-29 | 2014-10-22 | 北京航空航天大学 | 一种实时性能测试方法与系统 |
CN106227671A (zh) * | 2016-08-05 | 2016-12-14 | 网易(杭州)网络有限公司 | 程序运行性能分析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109542793A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2815319B1 (en) | Code coverage rate determination method and system | |
CN110196801B (zh) | 一种基于代码覆盖率的测试方法及装置 | |
JPWO2020003532A1 (ja) | 学習モデル作成支援装置、学習モデル作成支援方法、及びプログラム | |
CN106155897B (zh) | 一种业务处理方法及装置 | |
CN112817866A (zh) | 录制回放方法、装置、系统、计算机设备以及存储介质 | |
US20150186195A1 (en) | Method of analysis application object which computer-executable, server performing the same and storage media storing the same | |
CN107066302B (zh) | 缺陷检测方法、装置及服务终端 | |
CN110580220B (zh) | 测量代码段执行时间的方法及终端设备 | |
CN106294109B (zh) | 获取缺陷代码的方法及装置 | |
CN109542793B (zh) | 一种程序性能分析方法及装置 | |
CN111597111A (zh) | 一种应用程序启动速度监控方法以及装置 | |
CN110688173A (zh) | 一种跨平台界面框架中组件的定位方法、装置及电子设备 | |
CN114780402A (zh) | 一种芯片仿真系统的调试方法、装置及服务器 | |
CN109271288B (zh) | 处理器硅前性能评估方法 | |
CN112527650B (zh) | 一种测试用例复用方法和复用装置 | |
CN111104328B (zh) | 用例生成方法、装置、计算机设备和可读存储介质 | |
CN110866492B (zh) | 一种基线分支的识别方法、装置及计算机系统 | |
CN113806224A (zh) | 集成化的测试方法及装置 | |
US8458523B2 (en) | Meta attributes in functional coverage models | |
CN112380133B (zh) | 一种指令集模拟器利用功能库仿真的方法及装置 | |
CN115658455B (zh) | 处理器性能评估方法、装置、电子设备及可读存储介质 | |
CN113986517B (zh) | Api调用日志采集方法、装置、电子设备及存储介质 | |
CN115376612B (zh) | 一种数据评测方法、装置、电子设备及存储介质 | |
CN111552958B (zh) | 一种程序运行特征提取方法和装置 | |
CN110825650B (zh) | 单元测试覆盖精度检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |