CN113127314A - 一种检测程序性能瓶颈的方法、装置及计算机设备 - Google Patents
一种检测程序性能瓶颈的方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN113127314A CN113127314A CN201911419520.5A CN201911419520A CN113127314A CN 113127314 A CN113127314 A CN 113127314A CN 201911419520 A CN201911419520 A CN 201911419520A CN 113127314 A CN113127314 A CN 113127314A
- Authority
- CN
- China
- Prior art keywords
- identifier
- service
- program
- calling
- determining
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 654
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000005070 sampling Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种检测程序性能瓶颈的方法、装置及计算机设备,用于解决检测程序性能瓶颈准确性较低的问题。该方法包括:在目标程序中预定业务类对应的业务请求运行时,对预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符;获取满足预定采样频率的业务请求对应的调用信息,调用信息至少包括方法名以及各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻;根据各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定预定业务类的调用关系链和各个业务方法的运行时长,以确定目标程序中的程序性能瓶颈,程序性能瓶颈用于表征调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种检测程序性能瓶颈的方法、装置及计算机设备。
背景技术
现有技术中,当程序编程完成之后,还需要对程序进行测试,以对程序进行程序优化处理。
然而,现有技术中在使用测试工具对程序进行性能测试时,如果发现系统资源(如CPU、内存等)充足而待测功能的响应时间过长,且达不到预设的性能指标时,仅仅可以确定出程序中某个业务对应的程序响应时间过长,而无法准确的定位业务中各个业务方法的响应时长,即无法准确定位程序的性能瓶颈,从而导致对程序优化准确性较低且优化效果差。
可见,现有技术中存在程序性能瓶颈检测准确性较低的技术问题。
发明内容
本发明实施例提供一种检测程序性能瓶颈的方法、装置及计算机设备,用于解决检测程序性能瓶颈准确性较低的问题。
第一方面,提供一种检测程序性能瓶颈的方法,应用于多种方法调用的程序检测系统,所述方法包括:
在目标程序中预定业务类对应的业务请求运行时,对所述预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,其中,所述业务类对应的业务请求运行时所述各个业务方法调用运行;
获取满足预定采样频率的所述业务请求对应的调用信息,其中,所述调用信息至少包括方法名以及所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻;
根据所述调用信息中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链和所述各个业务方法的运行时长,其中,所述调用关系链用于表征所述预定关系类中各个业务方法的运行顺序和运行关系;
根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,其中,所述程序性能瓶颈用于表征所述调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
在一种可能的实施方式中,根据所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链,包括:
在第一方法的起始标识符的获得时刻和结束标识符的获得时刻之间,获得第二方法的起始标识符,则确定所述第二方法为所述第一方法的内部调用方法;其中,所述第一方法的初始标识符的获得时刻为所述调用信息中各个方法的初始标识符获得时刻中最小的时刻,所述第二方法为所述第一方法的内部调用方法用于表征所述第一方法的运行时长中包括所述第二运行方法的运行时长的方法关系;
若在获得所述第二方法的结束标识符的获得时刻之后,读出第三方法的起始标识符,且所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻相同,则确定所述第三方法为所述第二方法的相邻方法,其中,所述第三方法的结束标识符的获得时刻为所述调用信息中各个方法的结束标识符的获得时刻中最大的时刻,所述第三方法为所述第二方法的所述相邻方法用于表征所述第二方法运行结束之后运行所述第三方法的方法关系;
根据所述第二方法为所述第一方法的内部调用方法和所述第三方法为所述第二方法的相邻方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的对应关系。
在一种可能的实施方式中,根据所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链,包括:
若确定所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻不相同,则确定所述第二方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法;
若所述第一方法的结束标识符的获得时刻和所述第三方法的结束标识符的获得时刻相同,则确定所述第三方法为所述第一方法的内部调用方法;
根据所述第二方法为所述第一方法的内部调用方法、所述第一方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法以及所述第三方法为所述第一方法的内部调用方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的关系。
在一种可能的实施方式中,根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,包括:
根据所述调用信息,统计所述各个业务方法的多个运行时长,并从所述各个业务方法中确定目标方法,其中,所述目标方法用于表征所述各个业务方法中各自对应的多个运行时长均大于业务方法的响应阈值的方法;
根据所述调用关系链,确定所述目标方法是否调用所述预定业务类中除所述目标方法之外的其他方法;
若所述目标方法未调用所述预定业务类中除所述目标方法之外的其他方法,则将所述目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
在一种可能的实施方式中,根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,包括:
若所述目标方法调用所述预定业务类中除所述目标方法之外的第一子目标方法,则确定所述第一子目标方法的运行时长是否大于所述第一子目标方法对应的业务方法响应阈值;
若是,则将所述第一子目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
第二方面,提供一种检测程序性能瓶颈的装置,应用于多种方法调用的程序检测系统,所述装置包括:
处理模块,用于在目标程序中预定业务类对应的业务请求运行时,对所述预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,其中,所述业务类对应的业务请求运行时所述各个业务方法调用运行;
获取模块,用于获取满足预定采样频率的所述业务请求对应的调用信息,其中,所述调用信息至少包括方法名以及所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻;
第一确定模块,用于根据所述调用信息中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链和所述各个业务方法的运行时长,其中,所述调用关系链用于表征所述预定关系类中各个业务方法的运行顺序和运行关系;
第二确定模块,用于根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,其中,所述程序性能瓶颈用于表征所述调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
在一种可能的实施方式中,所述第一确定模块,具体用于:
在第一方法的起始标识符的获得时刻和结束标识符的获得时刻之间,获得第二方法的起始标识符,则确定所述第二方法为所述第一方法的内部调用方法;其中,所述第一方法的初始标识符的获得时刻为所述调用信息中各个方法的初始标识符获得时刻中最小的时刻,所述第二方法为所述第一方法的内部调用方法用于表征所述第一方法的运行时长中包括所述第二运行方法的运行时长的方法关系;
若在获得所述第二方法的结束标识符的获得时刻之后,读出第三方法的起始标识符,且所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻相同,则确定所述第三方法为所述第二方法的相邻方法,其中,所述第三方法的结束标识符的获得时刻为所述调用信息中各个方法的结束标识符的获得时刻中最大的时刻,所述第三方法为所述第二方法的所述相邻方法用于表征所述第二方法运行结束之后运行所述第三方法的方法关系;
根据所述第二方法为所述第一方法的内部调用方法和所述第三方法为所述第二方法的相邻方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的对应关系。
在一种可能的实施方式中,所述第一确定模块,具体用于:
若确定所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻不相同,则确定所述第二方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法;
若所述第一方法的结束标识符的获得时刻和所述第三方法的结束标识符的获得时刻相同,则确定所述第三方法为所述第一方法的内部调用方法;
根据所述第二方法为所述第一方法的内部调用方法、所述第一方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法以及所述第三方法为所述第一方法的内部调用方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的关系。
在一种可能的实施方式中,所述第二确定模块,具体用于:
根据所述调用信息,统计所述各个业务方法的多个运行时长,从所述各个业务方法中确定目标方法,其中,所述目标方法用于表征所述各个业务方法中各自对应的多个运行时长均大于业务方法的响应阈值的方法;
根据所述调用关系链,确定所述目标方法是否调用所述预定业务类中除所述目标方法之外的其他方法;
若所述目标方法未调用所述预定业务类中除所述目标方法之外的其他方法,则将所述目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
在一种可能的实施方式中,所述第二确定模块,具体用于:
若所述目标方法调用所述预定业务类中除所述目标方法之外的第一子目标方法,则确定所述第一子目标方法的运行时长是否大于所述第一子目标方法对应的业务方法响应阈值;
若是,则将所述第一子目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
第三方面,提供一种计算机设备,所述计算机设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中的任一方法包括的步骤。
第四方面,提供一种存储介质,该存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中的任一方法包括的步骤。
第五方面,提供一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得计算机设备能够执行第一方面中任一方法包括的步骤。
本发明的实施例提供的技术方案至少带来以下有益效果:
在本发明实施例中,可以在目标程序中预定业务类对应的业务请求运行时,对预定业务类中的各个业务方法对应的程序添加起始标识符和结束标识符。然后可以获取满足预定采样频率的业务请求对应的调用信息,其中,调用信息至少包括方法名以及预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,从而可以准确的确定各个业务方法对应的运行时长。
进一步地,还可以根据预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定预定业务类的调用关系链,从而可以根据调用关系链和各个业务方法的运行时长确定目标程序中的程序性能瓶颈。也就是说,本发明实施例中在考虑各个业务方法的运行时长的基础上,还考虑了方法的调用关系,从而可以较为准确的确定目标程序的程序性能瓶颈。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或通过实施本而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例中的检测程序性能瓶颈的方法的流程图;
图2为本申请实施例中的检测程序性能瓶颈的装置的结构框图;
图3为本申请实施例中的调用方法链的示意图;
图4为本申请实施例中的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”以及“第三”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如前所述,现有技术中在对程序进行测试时,仅可以确定出程序中某个业务对应的程序响应时间过长,而无法准确的定位业务中各个业务方法的响应时长,且不能确定业务中各个业务方法是否存在方法调用,即无法准确定位程序的性能瓶颈,从而导致对程序优化准确性较低且优化效果差。
鉴于此,本申请提供一种检测程序性能瓶颈的方法,通过该方法可以复原程序中业务类的方法调用链,且可以获取业务类中各个业务方法的运行时长,从而可以准确的确定程序性能瓶颈,增强检测程序性能瓶颈的准确性。
下面结合说明书附图介绍本发明实施例提供的技术方案。
请参见图1,本发明实施例提供一种检测程序性能瓶颈的方法,该方法可以由计算机设备执行,具体的,该计算机设备可以是服务器、计算机集群、服务器集群等等。该方法的具体流程描述如下。
步骤101:当目标程序中预定业务类对应的业务请求运行时,对预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,其中,业务类对应的业务请求运行时各个业务方法调用运行。
步骤102:获取满足预定采样频率的业务请求对应的调用信息,其中,调用信息至少包括方法名以及预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻。
在本发明实施例中,计算机设备可以对任意一个程序进行程序性能瓶颈进行检测,为了便于描述,将待测试的程序可以称作目标程序。此外,目标程序中包含多个业务类,且每个业务类中包括多个业务方法,该多个业务方法之间存在调用关系,例如,在方法A的运行中,可能包含方法B的运行,则可以确定方法A调用方法B。需要说明的是,在具体的实施过程中,当仅对某一指定业务类进行程序性能瓶颈检测处理时,为了避免无关业务类的干扰,可以只对某一个业务类进行处理,可以将该业务类称作预定业务类。
需要说明的是,本发明实施例中的目标程序可以理解为实际实施过程中的完整代码,预定业务类对应的程序可以理解为小于完整代码的部分代码,业务方法对应的程序可以理解为小于部分代码的代码片段,即目标程序对应的完整代码包含预定业务类对应的程序的部分代码,预定业务类对应的程序的部分代码包含业务方法对应的程序的代码片段。
在具体的实施过程中,当目标程序中预定业务类对应的业务请求运行时,可以对预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,具体的,起始标识符和结束标识符可以是字节码,也可以是其他标识,本发明实施例中不做限定。
在本发明实施例中,可以获取满足预定采样频率的业务请求对应的调用信息,其中,调用信息至少包括方法名以及预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻。具体的,调用信息还可以包括线程ID、业务类的类名、当前系统时间、业务请求起始确认信息等信息。
在具体的实施过程中,由于目标程序在运行时,会使用多线程技术进行运行,则获取的数据量是巨大的,为了降低数据量的处理复杂度,可以按照比例采集一部分数据,即可以按照预定采样频率采集预定业务类对应的业务请求对应的调用信息,从而可以获取该调用信息。
例如,若目标程序为JAVA类型程序,当JAVA类型程序中预定业务类对应的业务请求运行时,可以采用java agent探针技术向预定业务类中各个业务方法对应的程序添加初始动态字节码和结束动态字节码。进一步地,还可以使用java agent探针技术进行调用信息的采集。
在具体的实施过程中,java agent探针技术通过JVM可以动态的在方法执行前后进行相应的操作,例如执行时间的统计。具体的,前述的应用程序可以理解为提供用于装备JAVA应用程序的工具API(Application Programming Interface,应用程序编程接口),允许Java Agent程序Instrument(装备)在JVM机上运行的应用程序。
步骤103:根据调用信息中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定预定业务类的调用关系链和各个业务方法的运行时长,其中,调用关系链用于表征预定关系类中各个业务方法的运行顺序和运行关系。
为了对技术方案的理解,可以对方法关系中的内部调用方法关系和相邻方法关系进行解释说明。在本发明实施例中,若方法A内部调用了方法B,则方法A的运行时长大于大于或等于方法B的运行时长,且方法A的初始标识符的获得时刻小于或等于方法B的初始标识符的获得时刻,以及方法B的结束标识符的获得时刻小于或等于方法A的结束标识符的获得时刻。若方法A与方法B为相邻方法关系,则方法A的结束标识符的获得时刻和方法B的初始标识符的获得时刻相同。
在本发明实施例中,若第一方法的起始标识符的获得时刻和结束标识符的获得时刻之间,获得第二方法的起始标识符,则确定第二方法为第一方法的内部调用方法,具体的,第二方法为第一方法的内部调用方法用于表征第一方法的运行时长中包括第二运行方法的运行时长的方法关系;其中,第一方法的初始标识符的获得时刻为调用信息中各个方法的初始标识符获得时刻中最小的时刻。
具体的,若在获得第二方法的结束标识符的获得时刻之后,可以读出第三方法的起始标识符,且第二方法的结束标识符的获得时刻和第三方法的初始标识符的获得时刻相同,则可以确定第三方法为第二方法的相邻方法,其中,第三方法的结束标识符的获得时刻为调用信息中各个方法的结束标识符的获得时刻中最大的时刻,第三方法为第二方法的相邻方法用于表征第二方法运行结束之后运行第三方法的方法关系。然后可以根据第二方法为第一方法的内部调用方法和第三方法为第二方法的相邻方法,具体确定预定业务类的调用关系链,从而可以根据调用关系链确定各个方法的运行时长的对应关系。
在本发明实施例中,若确定第二方法的结束标识符的获得时刻和第三方法的初始标识符的获得时刻不相同,则确定第二方法和第三方法对应的程序之间包含未被监控到的程序对应的方法;以及,若第一方法的结束标识符的获得时刻和第三方法的结束标识符的获得时刻相同,则确定第三方法为第一方法的内部调用方法。
然后可以根据第二方法为第一方法的内部调用方法、第一方法和第三方法对应的程序之间包含未被监控到的程序对应的方法以及第三方法为第一方法的内部调用方法,确定预定业务类中各个业务方法的调用关系链,从而可以根据调用关系链确定各个方法的运行时长的对应关系。
例如,请参见图2,当得到方法A的起始标识符的获得时刻,则可以标记方法A开始,然后若在未得到方法A的结束标识符的获得时刻前得到方法B的起始标识符的获得时刻,则可以将方法B记为方法A的内部调用方法。在获得方法B的起始标识符的获得时刻之后,当获得方法B的结束标识符以及方法A的结束标识符,则可以依次记方法B、方法A结束。以及,在方法B
的结束标识符的获得时刻之后且未获得方法A的结束标识符获得时刻之前,获得方法C的初始标识符,且方法C的结束标识符的获得时刻等于方法A的结束标识符的获得时刻,则可以记方法C为方法A的内部调用方法。此外,在方法A结束后得到D方法的起始标识符信息,则可以记D方法为方法A的相邻方法。依此逻辑递归,则得到完整的调用关系链。
请继续参见图2,方法B的结束标识符的获得时刻和方法C的结束标识符的获得时刻不相同,则说明方法B和方法C中存在一段未被监控到的方法。
步骤104:根据调用关系链和各个业务方法的运行时长,确定目标程序中的程序性能瓶颈,其中,程序性能瓶颈用于表征调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
在本发明实施例中,根据调用信息,统计各个业务方法的多个运行时长,并从各个业务方法中确定目标方法,其中,目标方法用于表征各个业务方法中各自对应的多个运行时长均大于业务方法的响应阈值的方法,也就是说,确定各个业务方法中,各个业务方法对应的多个运行时长均大于各自业务方法的响应阈值的方法,可以作为目标方法。然后可以根据调用关系链,确定目标方法是否调用预定业务类中除目标方法之外的其他方法;若目标方法未调用预定业务类中除目标方法之外的其他方法,则将目标方法对应的程序确定为目标程序中的程序性能瓶颈。
在本发明实施例中,当根据调用关系链确定出目标方法不具有内部调用方法关系时,则可以直接确定目标方法是整个目标程序中运行时长大于响应阈值的方法,即目标方法为目标程序中的程序性能瓶颈,则可以确定需要对目标方法进行优化。
在本发明实施例中,若可以确定目标方法调用预定业务类中除目标方法之外的第一子目标方法,还可以判断第一子目标方法的运行时长是否大于第一子目标方法对应的业务方法响应阈值,若是,则将第一子目标方法对应的程序确定为目标程序中的程序性能瓶颈。也就是说,目标方法中具有内部调用关系,即需要确定是否是内部调用的方法的运行时长大于响应阈值,从而可以更精准的确定是目标方法还是第一子目标方法的运行时长影响整个程序的运行时长,进而可以更准确的定位程序性能瓶颈,进而对目标程序进行优化处理。
在本发明实施例中,当确定目标方法的运行时长大于阈值时,还需要判断目标方法是否包括内部调用方法,从而可以更为准确的确定出具体哪个方法的运行时长较长,从而可以将该方法对应的程序作为程序性能瓶颈,进而对该方法对应的程序进行优化,从而提高目标程序的软件性能,以提升使用体验。
基于同一发明构思,本发明实施例提供了一种检测程序性能瓶颈的装置,该检测程序性能瓶颈的装置能够实现前述的检测程序性能瓶颈的方法对应的功能。该检测程序性能瓶颈的装置可以是硬件结构、软件模块、或硬件结构加软件模块。该检测程序性能瓶颈的装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图3所示,该检测程序性能瓶颈的装置包括处理模块301、获取模块302、第一确定模块303以及第二确定模块304。其中:
处理模块301,用于在目标程序中预定业务类对应的业务请求运行时,对所述预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,其中,所述业务类对应的业务请求运行时所述各个业务方法调用运行;
获取模块302,用于获取满足预定采样频率的所述业务请求对应的调用信息,其中,所述调用信息至少包括方法名以及所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻;
第一确定模块303,用于根据所述调用信息中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链和所述各个业务方法的运行时长,其中,所述调用关系链用于表征所述预定关系类中各个业务方法的运行顺序和运行关系;
第二确定模块304,用于根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,其中,所述程序性能瓶颈用于表征所述调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
在一种可能的实施方式中,所述第一确定模块303,具体用于:
在第一方法的起始标识符的获得时刻和结束标识符的获得时刻之间,获得第二方法的起始标识符,则确定所述第二方法为所述第一方法的内部调用方法;其中,所述第一方法的初始标识符的获得时刻为所述调用信息中各个方法的初始标识符获得时刻中最小的时刻,所述第二方法为所述第一方法的内部调用方法用于表征所述第一方法的运行时长中包括所述第二运行方法的运行时长的方法关系;
若在获得所述第二方法的结束标识符的获得时刻之后,读出第三方法的起始标识符,且所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻相同,则确定所述第三方法为所述第二方法的相邻方法,其中,所述第三方法的结束标识符的获得时刻为所述调用信息中各个方法的结束标识符的获得时刻中最大的时刻,所述第三方法为所述第二方法的所述相邻方法用于表征所述第二方法运行结束之后运行所述第三方法的方法关系;
根据所述第二方法为所述第一方法的内部调用方法和所述第三方法为所述第二方法的相邻方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的对应关系。
在一种可能的实施方式中,所述第一确定模块303,具体用于:
若确定所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻不相同,则确定所述第二方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法;
若所述第一方法的结束标识符的获得时刻和所述第三方法的结束标识符的获得时刻相同,则确定所述第三方法为所述第一方法的内部调用方法;
根据所述第二方法为所述第一方法的内部调用方法、所述第一方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法以及所述第三方法为所述第一方法的内部调用方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的关系。
在一种可能的实施方式中,所述第二确定模块304,具体用于:
根据所述调用信息,统计所述各个业务方法的多个运行时长,并从所述各个业务方法中确定目标方法,其中,所述目标方法用于表征所述各个业务方法中各自对应的多个运行时长均大于业务方法的响应阈值的方法
根据所述调用关系链,确定所述目标方法是否调用所述预定业务类中除所述目标方法之外的其他方法;
若所述目标方法未调用所述预定业务类中除所述目标方法之外的其他方法,则将所述目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
在一种可能的实施方式中,所述第二确定模块304,具体用于:
若所述目标方法调用所述预定业务类中除所述目标方法之外的第一子目标方法,则确定所述第一子目标方法的运行时长是否大于所述第一子目标方法对应的业务方法响应阈值;
若是,则将所述第一子目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
前述的检测程序性能瓶颈的方法的实施例涉及的各步骤的所有相关内容均可以援引到本发明实施例中的检测程序性能瓶颈的装置所对应的功能模块的功能描述,在此不再赘述。
本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于同一发明构思,本发明实施例提供一种计算机设备,请参见图4所示,该计算机设备包括至少一个处理器401,以及与至少一个处理器连接的存储器402,本发明实施例中不限定处理器401与存储器402之间的具体连接介质,图4中是以处理器401和存储器402之间通过总线400连接为例,总线400在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线400可以分为地址总线、数据总线、控制总线等,为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本发明实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行前述的检测程序性能瓶颈的方法中所包括的步骤。
其中,处理器401是计算机设备的控制中心,可以利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。
可选的,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器401可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器401进行设计编程,可以将前述实施例中介绍的检测程序性能瓶颈的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的检测程序性能瓶颈的方法的步骤,如何对处理器401进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本发明实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的检测程序性能瓶颈的方法的步骤。
在一些可能的实施方式中,本发明提供的检测程序性能瓶颈的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在检测程序性能瓶颈的设备上运行时,所述程序代码用于使该检测程序性能瓶颈的设备执行本说明书上述描述的根据本发明各种示例性实施方式的检测程序性能瓶颈的方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种检测程序性能瓶颈的方法,其特征在于,应用于多种方法调用的程序检测系统,所述方法包括:
在目标程序中预定业务类对应的业务请求运行时,对所述预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,其中,所述业务类对应的业务请求运行时所述各个业务方法调用运行;
获取满足预定采样频率的所述业务请求对应的调用信息,其中,所述调用信息至少包括方法名以及所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻;
根据所述调用信息中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链和所述各个业务方法的运行时长,其中,所述调用关系链用于表征所述预定关系类中各个业务方法的运行顺序和运行关系;
根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,其中,所述程序性能瓶颈用于表征调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
2.如权利要求1所述的方法,其特征在于,根据所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链,包括:
在第一方法的起始标识符的获得时刻和结束标识符的获得时刻之间,获得第二方法的起始标识符,则确定所述第二方法为所述第一方法的内部调用方法;其中,所述第一方法的初始标识符的获得时刻为所述调用信息中各个方法的初始标识符获得时刻中最小的时刻,所述第二方法为所述第一方法的内部调用方法用于表征所述第一方法的运行时长中包括所述第二运行方法的运行时长的方法关系;
若在获得所述第二方法的结束标识符的获得时刻之后,读出第三方法的起始标识符,且所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻相同,则确定所述第三方法为所述第二方法的相邻方法,其中,所述第三方法的结束标识符的获得时刻为所述调用信息中各个方法的结束标识符的获得时刻中最大的时刻,所述第三方法为所述第二方法的所述相邻方法用于表征所述第二方法运行结束之后运行所述第三方法的方法关系;
根据所述第二方法为所述第一方法的内部调用方法和所述第三方法为所述第二方法的相邻方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的对应关系。
3.如权利要求2所述的方法,其特征在于,根据所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链,包括:
若确定所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻不相同,则确定所述第二方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法;
若所述第一方法的结束标识符的获得时刻和所述第三方法的结束标识符的获得时刻相同,则确定所述第三方法为所述第一方法的内部调用方法;
根据所述第二方法为所述第一方法的内部调用方法、所述第一方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法以及所述第三方法为所述第一方法的内部调用方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的对应关系。
4.如权利要求1所述的方法,其特征在于,根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,包括:
根据所述调用信息,统计所述各个业务方法的多个运行时长,并从所述各个业务方法中确定目标方法,其中,所述目标方法用于表征所述各个业务方法中各自对应的多个运行时长均大于业务方法的响应阈值的方法;
根据所述调用关系链,确定所述目标方法是否调用所述预定业务类中除所述目标方法之外的其他方法;
若所述目标方法未调用所述预定业务类中除所述目标方法之外的其他方法,则将所述目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
5.如权利要求2所述的方法,其特征在于,根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,包括:
若所述目标方法调用所述预定业务类中除所述目标方法之外的第一子目标方法,则确定所述第一子目标方法的运行时长是否大于所述第一子目标方法对应的业务方法响应阈值;
若是,则将所述第一子目标方法对应的程序确定为所述目标程序中的程序性能瓶颈。
6.一种检测程序性能瓶颈的装置,其特征在于,应用于多种方法调用的程序检测系统,所述装置包括:
处理模块,用于在目标程序中预定业务类对应的业务请求运行时,对所述预定业务类中各个业务方法对应的程序添加起始标识符和结束标识符,其中,所述业务类对应的业务请求运行时所述各个业务方法调用运行;
获取模块,用于获取满足预定采样频率的所述业务请求对应的调用信息,其中,所述调用信息至少包括方法名以及所述预定业务类中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻;
第一确定模块,用于根据所述调用信息中各个业务方法分别对应的起始标识符的获得时刻和结束标识符的获得时刻,确定所述预定业务类的调用关系链和所述各个业务方法的运行时长,其中,所述调用关系链用于表征所述预定关系类中各个业务方法的运行顺序和运行关系;
第二确定模块,用于根据所述调用关系链和所述各个业务方法的运行时长,确定所述目标程序中的程序性能瓶颈,其中,所述程序性能瓶颈用于表征所述调用关系链中运行时长大于业务方法响应阈值的业务方法对应的程序。
7.如权利要求6所述的装置,其特征在于,所述第一确定模块,具体用于:
在第一方法的起始标识符的获得时刻和结束标识符的获得时刻之间,获得第二方法的起始标识符,则确定所述第二方法为所述第一方法的内部调用方法;其中,所述第一方法的初始标识符的获得时刻为所述调用信息中各个方法的初始标识符获得时刻中最小的时刻,所述第二方法为所述第一方法的内部调用方法用于表征所述第一方法的运行时长中包括所述第二运行方法的运行时长的方法关系;
若在获得所述第二方法的结束标识符的获得时刻之后,读出第三方法的起始标识符,且所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻相同,则确定所述第三方法为所述第二方法的相邻方法,其中,所述第三方法的结束标识符的获得时刻为所述调用信息中各个方法的结束标识符的获得时刻中最大的时刻,所述第三方法为所述第二方法的所述相邻方法用于表征所述第二方法运行结束之后运行所述第三方法的方法关系;
根据所述第二方法为所述第一方法的内部调用方法和所述第三方法为所述第二方法的相邻方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的对应关系。
8.如权利要求6所述的装置,其特征在于,所述第一确定模块,具体用于:
若确定所述第二方法的结束标识符的获得时刻和所述第三方法的初始标识符的获得时刻不相同,则确定所述第二方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法;
若所述第一方法的结束标识符的获得时刻和所述第三方法的结束标识符的获得时刻相同,则确定所述第三方法为所述第一方法的内部调用方法;
根据所述第二方法为所述第一方法的内部调用方法、所述第一方法和所述第三方法对应的程序之间包含未被监控到的程序对应的方法以及所述第三方法为所述第一方法的内部调用方法,确定所述预定业务类的调用关系链,以根据所述调用关系链确定各个方法的运行时长的关系。
9.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-5任一所述的方法包括的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-5任一所述的方法包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419520.5A CN113127314B (zh) | 2019-12-31 | 2019-12-31 | 一种检测程序性能瓶颈的方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419520.5A CN113127314B (zh) | 2019-12-31 | 2019-12-31 | 一种检测程序性能瓶颈的方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127314A true CN113127314A (zh) | 2021-07-16 |
CN113127314B CN113127314B (zh) | 2023-10-31 |
Family
ID=76769320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911419520.5A Active CN113127314B (zh) | 2019-12-31 | 2019-12-31 | 一种检测程序性能瓶颈的方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127314B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535407A (zh) * | 2021-07-30 | 2021-10-22 | 济南浪潮数据技术有限公司 | 一种服务器的优化方法、系统、设备及存储介质 |
CN114185735A (zh) * | 2021-11-29 | 2022-03-15 | 联想(北京)有限公司 | 一种数据处理方法及装置 |
CN114355171A (zh) * | 2022-03-15 | 2022-04-15 | 江苏清微智能科技有限公司 | 一种可重构芯片性能瓶颈检测平台、检测方法及电子设备 |
CN117573491A (zh) * | 2023-11-16 | 2024-02-20 | 北京优特捷信息技术有限公司 | 一种性能瓶颈的定位方法、装置、设备及存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050066326A1 (en) * | 2003-09-19 | 2005-03-24 | International Business Machines Corporation | Program-level performance tuning |
CN101000575A (zh) * | 2006-01-13 | 2007-07-18 | 英业达股份有限公司 | 计算机程序执行瓶颈分析处理方法及系统 |
US20080120627A1 (en) * | 2006-11-22 | 2008-05-22 | International Business Machines Corporation | Method for detecting race conditions involving heap memory access |
CN101316185A (zh) * | 2007-06-01 | 2008-12-03 | 阿里巴巴集团控股有限公司 | 一种基于日志文件的分析结果定位系统资源瓶颈的方法 |
US20110072418A1 (en) * | 2009-09-23 | 2011-03-24 | International Business Machines Corporation | Tracing memory update for debugging computer program |
US20130179144A1 (en) * | 2012-01-06 | 2013-07-11 | Frank Lu | Performance bottleneck detection in scalability testing |
CN103793237A (zh) * | 2012-10-31 | 2014-05-14 | 中国移动通信集团浙江有限公司 | J2ee 应用系统性能瓶颈定位方法与装置 |
US20160232200A1 (en) * | 2015-02-11 | 2016-08-11 | Centurylink Intellectual Property Llc | Database Code-Module Performance and Reliability Metrics Instrumentation |
CN107688899A (zh) * | 2017-08-22 | 2018-02-13 | 北京潘达互娱科技有限公司 | 业务流程监控方法及装置 |
US20180210815A1 (en) * | 2017-01-23 | 2018-07-26 | International Business Machines Corporation | Programming assistance to identify suboptimal performing code and suggesting alternatives |
US20180276109A1 (en) * | 2017-03-24 | 2018-09-27 | International Business Machines Corporation | Distributed system test device |
US20190258490A1 (en) * | 2018-02-21 | 2019-08-22 | International Business Machines Corporation | Runtime detection of code modification |
CN110262977A (zh) * | 2019-06-24 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种全链路性能测试方法、装置、计算设备及存储介质 |
WO2019184597A1 (zh) * | 2018-03-30 | 2019-10-03 | 阿里巴巴集团控股有限公司 | 函数选取方法和服务器 |
CN110457277A (zh) * | 2019-08-19 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 业务处理性能分析方法、装置、设备及存储介质 |
-
2019
- 2019-12-31 CN CN201911419520.5A patent/CN113127314B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050066326A1 (en) * | 2003-09-19 | 2005-03-24 | International Business Machines Corporation | Program-level performance tuning |
CN101000575A (zh) * | 2006-01-13 | 2007-07-18 | 英业达股份有限公司 | 计算机程序执行瓶颈分析处理方法及系统 |
US20080120627A1 (en) * | 2006-11-22 | 2008-05-22 | International Business Machines Corporation | Method for detecting race conditions involving heap memory access |
CN101316185A (zh) * | 2007-06-01 | 2008-12-03 | 阿里巴巴集团控股有限公司 | 一种基于日志文件的分析结果定位系统资源瓶颈的方法 |
US20110072418A1 (en) * | 2009-09-23 | 2011-03-24 | International Business Machines Corporation | Tracing memory update for debugging computer program |
US20130179144A1 (en) * | 2012-01-06 | 2013-07-11 | Frank Lu | Performance bottleneck detection in scalability testing |
CN103793237A (zh) * | 2012-10-31 | 2014-05-14 | 中国移动通信集团浙江有限公司 | J2ee 应用系统性能瓶颈定位方法与装置 |
US20160232200A1 (en) * | 2015-02-11 | 2016-08-11 | Centurylink Intellectual Property Llc | Database Code-Module Performance and Reliability Metrics Instrumentation |
US20180210815A1 (en) * | 2017-01-23 | 2018-07-26 | International Business Machines Corporation | Programming assistance to identify suboptimal performing code and suggesting alternatives |
US20180276109A1 (en) * | 2017-03-24 | 2018-09-27 | International Business Machines Corporation | Distributed system test device |
CN107688899A (zh) * | 2017-08-22 | 2018-02-13 | 北京潘达互娱科技有限公司 | 业务流程监控方法及装置 |
US20190258490A1 (en) * | 2018-02-21 | 2019-08-22 | International Business Machines Corporation | Runtime detection of code modification |
WO2019184597A1 (zh) * | 2018-03-30 | 2019-10-03 | 阿里巴巴集团控股有限公司 | 函数选取方法和服务器 |
TW201942736A (zh) * | 2018-03-30 | 2019-11-01 | 香港商阿里巴巴集團服務有限公司 | 函式選取方法和伺服器 |
CN110262977A (zh) * | 2019-06-24 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种全链路性能测试方法、装置、计算设备及存储介质 |
CN110457277A (zh) * | 2019-08-19 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 业务处理性能分析方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
BGSLYAO: "程序性能瓶颈", Retrieved from the Internet <URL:《CSDN》> * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535407A (zh) * | 2021-07-30 | 2021-10-22 | 济南浪潮数据技术有限公司 | 一种服务器的优化方法、系统、设备及存储介质 |
CN113535407B (zh) * | 2021-07-30 | 2024-03-19 | 济南浪潮数据技术有限公司 | 一种服务器的优化方法、系统、设备及存储介质 |
CN114185735A (zh) * | 2021-11-29 | 2022-03-15 | 联想(北京)有限公司 | 一种数据处理方法及装置 |
CN114355171A (zh) * | 2022-03-15 | 2022-04-15 | 江苏清微智能科技有限公司 | 一种可重构芯片性能瓶颈检测平台、检测方法及电子设备 |
CN117573491A (zh) * | 2023-11-16 | 2024-02-20 | 北京优特捷信息技术有限公司 | 一种性能瓶颈的定位方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113127314B (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113127314B (zh) | 一种检测程序性能瓶颈的方法、装置及计算机设备 | |
CN110018914B (zh) | 基于共享内存的消息采集方法及装置 | |
US8141053B2 (en) | Call stack sampling using a virtual machine | |
CN108197032B (zh) | Ios应用的主线程卡顿监测方法、介质、设备及系统 | |
CN107423213B (zh) | 一种文件描述符分配检测方法和装置 | |
CN105426310B (zh) | 一种检测目标进程的性能的方法和装置 | |
CN110688168A (zh) | 提高应用程序启动速度方法、装置、设备及存储介质 | |
CN109634822B (zh) | 一种函数耗时统计方法、装置、存储介质及终端设备 | |
CN115269544A (zh) | 一种数据库集群升级方法、装置、电子设备及存储介质 | |
CN112667405A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN113778890B (zh) | 代码测试方法、装置、电子设备及存储介质 | |
CN113360389A (zh) | 一种性能测试方法、装置、设备及存储介质 | |
CN107451038B (zh) | 硬件事件采集方法、处理器和计算系统 | |
CN116820853A (zh) | 芯片测试数据的解析方法、装置、电子设备及存储介质 | |
CN109189671B (zh) | 逐层夹逼式变量定位方法、系统及终端设备 | |
CN108197005B (zh) | Ios应用的底层运行性能监测方法、介质、设备及系统 | |
CN115454696A (zh) | 一种内存泄漏检测的方法、装置及电子设备 | |
CN112470227A (zh) | 一种数据块处理的方法及控制器 | |
CN111309475B (zh) | 一种检测任务执行方法及设备 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
US9934035B2 (en) | Device and method for tracing updated predicate values | |
CN109343953B (zh) | 内存管理方法、装置及电子设备 | |
CN111356987B (zh) | 动态内存的识别方法和装置 | |
CN108304294B (zh) | Ios应用的实时帧数监测方法、存储介质、设备及系统 | |
CN113238855A (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 |