CN110457277B - 业务处理性能分析方法、装置、设备及存储介质 - Google Patents
业务处理性能分析方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110457277B CN110457277B CN201910766000.5A CN201910766000A CN110457277B CN 110457277 B CN110457277 B CN 110457277B CN 201910766000 A CN201910766000 A CN 201910766000A CN 110457277 B CN110457277 B CN 110457277B
- Authority
- CN
- China
- Prior art keywords
- sampling
- service processing
- function
- information
- time
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 27
- 238000005070 sampling Methods 0.000 claims abstract description 156
- 238000000034 method Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 108
- 238000013500 data storage Methods 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种业务处理性能分析方法、装置、设备及存储介质。该方法包括:按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。本发明实施例通按照预设周期对业务处理线程采样得到的堆栈信息和采样时刻数据得到各函数的调用关系以及耗时信息,并通过构建调用关系树准确清晰地对各函数进行分析,从而在无需获取日志以及大量埋点的情况下,对业务的处理性能进行准确分析,提高了分析效率。
Description
技术领域
本发明实施例涉及性能分析技术领域,尤其涉及一种业务处理性能分析方法、装置、设备及存储介质。
背景技术
很多应用系统在处理业务处理请求时,会出现页面响应慢、接口超时、服务器负载高、并发数低、数据库频繁死锁等业务处理请求的性能问题。当发生上述问题时,需要快速发现问题的存在,并且分析导致问题出现的原因,准确定位到具体类方法的性能数据。
目前的性能问题分析方法,对于没有源代码的应用系统,无法通过在业务代码中增加性能统计的方式,分析其性能问题。并且,在对源代码不了解的情况下,无法准确定位到其中的类方法,并对其进行性能统计。另外,对于并发的应用系统进行性能分析时,需要准确定位其中的类方法,并且可能会产生大量的日志,增加了技术人员的工作量,降低了性能分析的效率。
发明内容
本发明实施例提供一种业务处理性能分析方法、装置、设备及存储介质,以实现准确、高效地对业务处理性能进行分析。
第一方面,本发明实施例提供了一种业务处理性能分析方法,该方法包括:
按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。
第二方面,本发明实施例提供了一种业务处理性能分析检测装置,该装置包括:
采样模块,用于按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
信息确定模块,用于根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
调用关系树构建模块,用于根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的业务处理性能分析方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的业务处理性能分析方法。
本发明实施例中通过按照预设采样周期对业务处理线程进行采样,并根据采样得到的堆栈信息和采样时刻数据,确定业务处理线程中各函数的调用关系和耗时信息,从而无需获取大量的日志以及在业务处理线程中进行大量的埋点以获取信息,提高了信息获取的效率,通过根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能,从而能够更加准确、直观地对业务性能进行分析,提高了业务性能分析的效率。
附图说明
图1是本发明实施例一中的一种业务处理性能分析方法的流程图;
图2是本发明实施例二中的一种业务处理性能分析方法的流程图;
图3是本发明实施例二中的调用关系树构建示意图;
图4是本发明实施例三中的一种业务处理性能分析装置的结构示意图;
图5是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种业务处理性能分析方法的流程图。本实施例提供的业务处理性能分析方法可适用于在对业务进行处理的过程中,对业务处理性能进行分析的情况,该方法具体可以由业务处理性能分析装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在设备中。参见图1,本发明实施例的方法具体包括:
S110、按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据。
其中,预设采样周期可以根据实际情况进行设定,例如可以设置为10ms,以保证采样得到的数据足够丰富,且不会造成数据冗余。业务处理线程为业务处理系统对业务请求进行处理的整个过程,包括各个函数对业务请求进行处理的过程。堆栈信息中包括业务处理线程的当前采样时刻,处理业务请求的函数之间的调用关系,以及处理过程中的程序代码运行情况。所述采样时刻数据包括采样时的系统时间和CPU运行时间。系统时间用于反映业务处理请求的所需实际时长,CPU运行时间用于反映处理业务请求实际耗用CPU的时长。
具体的,在对业务处理性能进行分析时,若根据业务处理产生的日志对业务处理线程中的各函数进行分析,则需要分析大量的日志,增加了技术人员的工作负担,且降低了业务处理性能的效率,并且在没有源码的情况下,无法通过日志分析业务处理性能。另外,若通过对所有调用函数埋点的方式获取各函数的性能数据,则需要提前明确业务处理线程中所需要调用的关键函数,增加了工作量和难度,降低了分析效率。因此,在本发明实施例中,按照预设周期对业务处理线程进行采样,获取业务处理线程的当前堆栈信息和采样时刻数据,以根据采样得到的当前堆栈信息和采样时刻数据,对业务处理性能进行分析,而不需要获取日志,对日志进行分析,或对业务处理线程进行大量埋点,提高了业务处理性能分析的效率,并避免了因日志分析误差以及埋点不精确导致分析结果不准确的问题,提高了业务处理性能分析的准确性。
S120、根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息。
具体的,由于系统在处理业务请求时往往会出现页面响应慢、接口超时、服务器负载高、并发数低和数据库频繁死锁等性能问题,因此,需要对业务处理线程中的各个函数的耗时进行分析,以确定影响业务处理性能的函数部分,对该函数部分进行优化改进,提高业务处理性能。堆栈信息中包括业务处理线程中处理业务请求的各函数的调用关系,因此通过采样得到的堆栈信息确定业务处理线程中各函数的调用关系,并通过与各堆栈信息对应的采样时刻数据,确定各函数的耗时信息,以分析页面响应慢、接口超时等问题的原因。
可选的,所述根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的耗时信息,包括:若任一函数在连续采样得到的至少两个堆栈信息中出现,则获取该函数在所述至少两个堆栈信息的第一个采样时刻数据和最后一个采样时刻数据;根据获取的第一个采样时刻数据和最后一个采样时刻数据,确定该函数的耗时信息。
具体的,如果任一函数在连续采样得到的至少两个堆栈信息中出现,则说明该函数在采样至少两个堆栈信息期间,均处于调用状态,则将该采样期间对应的时间作为该函数的耗时信息,即将采样包含该函数的至少两个堆栈信息时,最后一个采样时刻数据与第一个采样时刻数据之差,作为该函数的耗时信息。若任一函数只在一个堆栈信息中出现,则该函数的耗时信息为该栈轨迹对应的采样时刻自身之差,即为零。
S130、根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。
具体的,根据堆栈信息确定的各函数调用关系为业务处理线程开始的时刻到采样时刻的时间段内,各函数的调用关系,各个堆栈信息中的函数调用关系可能存在重复的部分,也可能存在不重复的部分,因此无法直观分析出在业务处理线程中整个函数调用链的具体情况,例如,某一采样时刻采样得到的堆栈信息中,函数的调用关系为A-B-C,在下一采样时刻采样得到的堆栈信息中,函数的调用关系为A-B-D,无法直观分析出完整的函数调用关系链,因此,在本发明实施例中,根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,从而通过调用关系树准确确定整个业务处理线程中各函数的调用关系,供通过调用关系树对业务性能进行分析。
本发明实施例的技术方案,通过按照预设采样周期对业务处理线程进行采样,并根据采样得到的堆栈信息和采样时刻数据,确定业务处理线程中各函数的调用关系和耗时信息,从而无需获取大量的日志以及在业务处理线程中进行大量的埋点以获取信息,提高了信息获取的效率,通过根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能,从而能够更加准确、直观地对业务性能进行分析,提高了业务性能分析的效率。
实施例二
图2是本发明实施例二中的一种业务处理性能分析方法的流程图。本发明实施例在上述实施例的基础上进行了优化,未在本实施例中详细描述的细节详见上述实施例。参见图2,本实施例提供的业务处理性能分析方法可以包括:
S210、在业务处理请求入口自动埋点,以在接收到业务处理请求时自动构建采样任务,执行按照预设采样周期对业务处理线程进行采样的操作。
示例性的,可以通过agent自动嵌码技术进行自动埋点,从而在接收到业务处理请求时,自动创建采样任务,对业务处理线程进行采样,提高了处理效率。也可以在接收到业务处理请求时,创建采样任务,对业务处理线程进行采样。
S220、按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据。
可选的,按照预设采样周期对业务处理线程进行采样之前,还包括:若检测到产生业务处理线程,则创建数据存储对象;其中,所述数据存储对象用于存储所述业务处理线程的调用关系树。具体的,针对每个业务处理线程,若检测到业务处理线程开始,则创建数据存储对象,用于存储该业务处理线程对应的调用关系树。另一可选的,若检测到业务处理请求,则创建数据存储对象,从而存储处理该业务处理请求的业务处理线程对应的调用关系树。
S230、根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息。
S240、将当前采样时刻采样得到的当前堆栈信息与前一采样时刻采样得到的前一堆栈信息进行比对。
具体的,对于任一业务处理线程第一次采样得到的堆栈信息,根据该堆栈信息确定其中各函数的调用关系,根据该调用关系创建调用关系树的第一分支。例如,第一次采样得到的堆栈信息中的函数调用关系为A-B-C,则创建调用关系树的第一分支为A-B-C。从第二采样时刻采样得到的堆栈信息开始,将当前采样得到的堆栈信息与前一采样时刻采样得到的堆栈信息进行比对,以根据比对结果更新调用关系树。
S250、针对当前堆栈信息中的每一调用层,若该调用层的函数与前一堆栈信息中该调用层的函数不同,则在上一调用层节点的基础上绘制该调用层节点。
具体的,针对当前堆栈信息中的每一调用层,若该调用层的函数与前一采样时刻采集得到的堆栈信息中对应调用层的函数一致,则保持调用关系树中该调用层的节点不变,若该调用层与前一采样时刻采样得到的堆栈信息中对应调用层的函数不一致,则说明当前采样时刻采样得到的堆栈信息对应调用层调用了不同的函数,因此,将该函数作为新的调用层节点,在前一次更新得到的调用关系树的该调用层节点对应的上一调用层节点的基础上,绘制该新的调用层节点。示例性的,如图3所示,若针对一个业务处理线程中,在t1采样时刻采样得到的堆栈信息中的函数调用关系为A-B-C,在t2采样时刻采样得到的堆栈信息中的函数调用关系为A-B-D,在t3时刻采样得到的堆栈信息中的函数调用关系为A-E-F,由于A在连续三次采样得到的堆栈信息中均存在,则函数A的耗时信息为t3-t1,同理确定其他函数的耗时信息,t2采样时刻采样得到的堆栈信息中的函数调用关系中的第一层调用层与t1采样时刻采样得到的堆栈信息中的函数调用关系中的第一层调用层均为函数A,因此不对该调用层节点进行调整,第二层调用层均为函数B,因此也不对该调用层节点进行调整,t1采样时刻采样得到的堆栈信息中的函数调用关系中的第三层调用层为函数C,t2采样时刻采样得到的堆栈信息中的函数调用关系中的第三层调用层为函数D,函数不相同,因此将函数D作为新的调用层节点,在上一层节点B的基础上绘制该新的调用层节点。
S260、将所述当前堆栈信息中调用层的函数耗时信息作为附加信息添加到该调用层节点上,以更新所述调用关系树。
具体的,为了准确分析出影响当前业务处理性能的原因,因此将堆栈信息中调用关系中调用层函数的耗时信息,作为附加信息添加到该调用层节点上,更新调用关系树,从而根据调用关系树直观分析出各函数的调用关系及各函数的耗时信息,以便分析出影响业务处理性能的原因。
本发明实施例的技术方案,在业务处理请求入口自动埋点,以在接收到业务处理请求时自动构建采样任务,从而在接收到业务请求时自动构建采样任务对业务处理线程进行采样,实现自动化采样,将当前采样时刻采样得到的当前堆栈信息与前一采样时刻采样得到的前一堆栈信息进行比对,针对当前堆栈信息中的每一调用层,若该调用层的函数与前一堆栈信息中该调用层的函数不同,则在上一调用层节点的基础上绘制该调用层节点,以及记录各函数的耗时信息,从而准确直观地确定业务处理线程中函数的调用关系以及各函数的耗时信息,以便分析影响业务处理性能的具体函数,以对影响业务处理性能的函数进行优化提高业务处理性能。
实施例三
图4是本发明实施例三中的一种业务处理性能分析装置的结构示意图。该装置适用于在对业务进行处理的过程中,对业务处理性能进行分析的情况,该装置可以由软件和/或硬件的方式实现,该装置可以集成在设备中。参见图4,该装置具体包括:
采样模块310,用于按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
信息确定模块320,用于根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
调用关系树构建模块330,用于根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。
可选的,还包括:
自动埋点模块,用于在业务处理请求入口自动埋点,以在接收到业务处理请求时自动构建采样任务,执行按照预设采样周期对业务处理线程进行采样的操作。
可选的,所述信息确定模块320,包括:
数据获取单元,用于若任一函数在连续采样得到的至少两个堆栈信息中出现,则获取该函数在所述至少两个堆栈信息的第一个采样时刻数据和最后一个采样时刻数据;
耗时信息确定单元,用于根据获取的第一个采样时刻数据和最后一个采样时刻数据,确定该函数的耗时信息。
可选的,所述调用关系树构建模块330,包括:
比对单元,用于将当前采样时刻采样得到的当前堆栈信息与前一采样时刻采样得到的前一堆栈信息进行比对;
调用层节点绘制单元,用于针对当前堆栈信息中的每一调用层,若该调用层的函数与前一堆栈信息中该调用层的函数不同,则在上一调用层节点的基础上绘制该调用层节点;
调用关系树更新单元,用于将所述当前堆栈信息中调用层的函数耗时信息作为附加信息添加到该调用层节点上,以更新所述调用关系树。
可选的,还包括:
数据存储对象创建模块,用于若检测到产生业务处理线程,则创建数据存储对象;其中,所述数据存储对象用于存储所述业务处理线程的调用关系树。
可选的,所述采样时刻数据包括采样时的系统时间和CPU运行时间。
本发明实施例的技术方案,采样模块按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;信息确定模块根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;调用关系树构建模块根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能,从而无需获取大量的日志以及在业务处理线程中进行大量的埋点以获取信息,提高了信息获取的效率,通过根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能,从而能够更加准确、直观地对业务性能进行分析,提高了业务性能分析的效率。
实施例四
图5是本发明实施例四中的一种设备的结构示意图。图5示出了适于用来实现本发明实施例的示例性设备412的框图。图5显示的设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,设备412以通用计算设备的形式表现。设备412的组件可以包括但不限于:一个或者多个处理器或者处理器416,系统存储器428,连接不同系统组件(包括系统存储器428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备412典型地包括多种计算机系统可读存储介质。这些存储介质可以是任何能够被设备412访问的可用存储介质,包括易失性和非易失性存储介质,可移动的和不可移动的存储介质。
系统存储器428可以包括易失性存储器形式的计算机系统可读存储介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁存储介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光存储介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据存储介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块462包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块462通常执行本发明所描述的实施例中的功能和/或方法。
设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器426等)通信,还可与一个或者多个使得用户能与该设备412交互的设备通信,和/或与使得该设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与设备412的其它模块通信。应当明白,尽管图5中未示出,可以结合设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在系统存储器428中的多个程序中其他程序的至少一个,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种业务处理性能分析方法,包括:
按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。
实施例五
本发明实施例五还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种业务处理性能分析方法:
按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的存储介质的任意组合。计算机可读存储介质可以是计算机可读信号存储介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明实施例中,计算机可读存储介质可以是任何包含或存储程序的有形存储介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号存储介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读存储介质上包含的程序代码可以用任何适当的存储介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种业务处理性能分析方法,其特征在于,所述方法包括:
按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能;
根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,包括:
将当前采样时刻采样得到的当前堆栈信息与前一采样时刻采样得到的前一堆栈信息进行比对;
针对当前堆栈信息中的每一调用层,若该调用层的函数与前一堆栈信息中该调用层的函数不同,则在上一调用层节点的基础上绘制该调用层节点;
将所述当前堆栈信息中调用层的函数耗时信息作为附加信息添加到该调用层节点上,以更新所述调用关系树。
2.根据权利要求1所述的方法,其特征在于,所述按照预设采样周期对业务处理线程进行采样之前,还包括:
在业务处理请求入口自动埋点,以在接收到业务处理请求时自动构建采样任务,执行按照预设采样周期对业务处理线程进行采样的操作。
3.根据权利要求1所述的方法,其特征在于,所述根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的耗时信息,包括:
若任一函数在连续采样得到的至少两个堆栈信息中出现,则获取该函数在所述至少两个堆栈信息的第一个采样时刻数据和最后一个采样时刻数据;
根据获取的第一个采样时刻数据和最后一个采样时刻数据,确定该函数的耗时信息。
4.根据权利要求1所述的方法,其特征在于,按照预设采样周期对业务处理线程进行采样之前,还包括:
若检测到产生业务处理线程,则创建数据存储对象;其中,所述数据存储对象用于存储所述业务处理线程的调用关系树。
5.根据权利要求1所述的方法,其特征在于,所述采样时刻数据包括采样时的系统时间和CPU运行时间。
6.一种业务处理性能分析装置,其特征在于,所述装置包括:
采样模块,用于按照预设采样周期对业务处理线程进行采样,获取所述业务处理线程的当前堆栈信息和采样时刻数据;
信息确定模块,用于根据所述堆栈信息与采样时刻数据,确定所述业务处理线程中各函数的调用关系和耗时信息;
调用关系树构建模块,用于根据各函数的调用关系和耗时信息,构建业务处理线程的调用关系树,供通过所述调用关系树分析业务性能;
所述调用关系树构建模块,包括:
比对单元,用于将当前采样时刻采样得到的当前堆栈信息与前一采样时刻采样得到的前一堆栈信息进行比对;
调用层节点绘制单元,用于针对当前堆栈信息中的每一调用层,若该调用层的函数与前一堆栈信息中该调用层的函数不同,则在上一调用层节点的基础上绘制该调用层节点;
调用关系树更新单元,用于将所述当前堆栈信息中调用层的函数耗时信息作为附加信息添加到该调用层节点上,以更新所述调用关系树。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
自动埋点模块,用于在业务处理请求入口自动埋点,以在接收到业务处理请求时自动构建采样任务,执行按照预设采样周期对业务处理线程进行采样的操作。
8.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一项所述的一种业务处理性能分析方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的一种业务处理性能分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910766000.5A CN110457277B (zh) | 2019-08-19 | 2019-08-19 | 业务处理性能分析方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910766000.5A CN110457277B (zh) | 2019-08-19 | 2019-08-19 | 业务处理性能分析方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457277A CN110457277A (zh) | 2019-11-15 |
CN110457277B true CN110457277B (zh) | 2024-04-16 |
Family
ID=68487681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910766000.5A Active CN110457277B (zh) | 2019-08-19 | 2019-08-19 | 业务处理性能分析方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457277B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127314B (zh) * | 2019-12-31 | 2023-10-31 | 航天信息股份有限公司 | 一种检测程序性能瓶颈的方法、装置及计算机设备 |
CN111159051B (zh) * | 2019-12-31 | 2023-07-04 | 北京天融信网络安全技术有限公司 | 死锁检测方法、装置、电子设备及可读存储介质 |
CN113282444B (zh) * | 2020-02-20 | 2023-09-22 | 北京京东振世信息技术有限公司 | 用于业务流程调试的可视化方法和装置 |
CN112099798B (zh) * | 2020-09-16 | 2024-04-19 | 广州虎牙科技有限公司 | 公有函数执行耗时的统计方法、装置、存储介质及终端 |
CN112052073A (zh) * | 2020-09-18 | 2020-12-08 | 网易(杭州)网络有限公司 | 脚本性能分析方法及装置、可读存储介质及电子设备 |
CN112348193B (zh) * | 2020-11-25 | 2021-09-07 | 德联易控科技(北京)有限公司 | 决策方法、决策装置及终端设备 |
CN113419932B (zh) * | 2021-05-26 | 2022-05-06 | 荣耀终端有限公司 | 一种设备性能分析方法和装置 |
CN113419933B (zh) * | 2021-05-26 | 2023-02-03 | 深圳开源互联网安全技术有限公司 | 一种监测工具的监测方法、装置及存储介质 |
CN113760648A (zh) * | 2021-07-22 | 2021-12-07 | 北京房江湖科技有限公司 | 接口调用链路耗时统计方法及装置、设备及介质 |
CN113608982A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 函数执行性能监测方法、装置、计算机设备及存储介质 |
CN113934475B (zh) * | 2021-08-10 | 2022-09-06 | 荣耀终端有限公司 | 应用调用的分析方法及电子设备 |
CN113672458B (zh) * | 2021-08-18 | 2022-09-09 | 北京基调网络股份有限公司 | 一种应用程序的监测方法、电子设备及存储介质 |
CN114238243B (zh) * | 2021-12-17 | 2023-02-03 | 杭州电子科技大学 | 一种用于流程发现的局部日志采样方法 |
CN114936039A (zh) * | 2022-05-31 | 2022-08-23 | 北京达佳互联信息技术有限公司 | 程序数据处理方法、装置、电子设备、存储介质 |
CN117240695B (zh) * | 2023-11-10 | 2024-02-23 | 杭州笨马网络技术有限公司 | 基于eBPF的持续性能剖析方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630285A (zh) * | 2009-08-07 | 2010-01-20 | 华南理工大学 | 一种应用于嵌入式系统的软件性能测试方法 |
CN107330034A (zh) * | 2017-06-26 | 2017-11-07 | 百度在线网络技术(北京)有限公司 | 一种日志分析方法和装置、计算机设备、存储介质 |
CN109522209A (zh) * | 2018-09-29 | 2019-03-26 | 中国平安人寿保险股份有限公司 | 日志堆栈信息分析方法及装置、计算机装置及存储介质 |
CN109783161A (zh) * | 2018-12-11 | 2019-05-21 | 北京三快在线科技有限公司 | iOS系统中应用程序的运行信息确定方法、装置 |
CN109840177A (zh) * | 2017-11-24 | 2019-06-04 | 腾讯科技(深圳)有限公司 | 一种卡顿的处理方法及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644397B2 (en) * | 2004-06-19 | 2010-01-05 | Apple Inc. | Software performance analysis using data mining |
-
2019
- 2019-08-19 CN CN201910766000.5A patent/CN110457277B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630285A (zh) * | 2009-08-07 | 2010-01-20 | 华南理工大学 | 一种应用于嵌入式系统的软件性能测试方法 |
CN107330034A (zh) * | 2017-06-26 | 2017-11-07 | 百度在线网络技术(北京)有限公司 | 一种日志分析方法和装置、计算机设备、存储介质 |
CN109840177A (zh) * | 2017-11-24 | 2019-06-04 | 腾讯科技(深圳)有限公司 | 一种卡顿的处理方法及相关设备 |
CN109522209A (zh) * | 2018-09-29 | 2019-03-26 | 中国平安人寿保险股份有限公司 | 日志堆栈信息分析方法及装置、计算机装置及存储介质 |
CN109783161A (zh) * | 2018-12-11 | 2019-05-21 | 北京三快在线科技有限公司 | iOS系统中应用程序的运行信息确定方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110457277A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457277B (zh) | 业务处理性能分析方法、装置、设备及存储介质 | |
CN109002510B (zh) | 一种对话处理方法、装置、设备和介质 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN107506300B (zh) | 一种用户界面测试方法、装置、服务器和存储介质 | |
US20200073712A1 (en) | Method, apparatus, device and medium for processing topological relation of tasks | |
CN109471851B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN111240689B (zh) | 应用程序的构建方法、装置、设备及存储介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN109284108B (zh) | 无人车数据存储方法、装置、电子设备及存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN110888731B (zh) | 路由数据采集方法、装置、设备及存储介质 | |
CN110597704A (zh) | 应用程序的压力测试方法、装置、服务器和介质 | |
CN112039975A (zh) | 一种报文字段的处理方法、装置、设备及存储介质 | |
CN115408391A (zh) | 一种数据库表变更方法、装置、设备和存储介质 | |
CN113553309A (zh) | 一种日志模板的确定方法、装置、电子设备及存储介质 | |
CN111045926B (zh) | 一种应用程序卡顿的检测方法、装置、介质和电子设备 | |
CN111177089B (zh) | 日志处理代码的生成方法和装置、计算机系统和存储介质 | |
CN111367813A (zh) | 决策引擎自动化测试方法、装置、服务器及存储介质 | |
CN111124627B (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
CN110716859A (zh) | 自动为修改的代码推送测试用例的方法及相关装置 | |
CN113760950B (zh) | 指标数据查询方法、装置、电子设备以及存储介质 | |
CN114090514A (zh) | 分布式系统的日志检索方法及装置 | |
CN110753136B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN114238391A (zh) | 数据分页查询方法、装置、电子设备及存储介质 | |
CN113687880A (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 |