运行态程序的分析方法及其装置、电子设备及存储介质与流程

文档序号:35441533发布日期:2023-09-14 00:47阅读:29来源:国知局
运行态程序的分析方法及其装置、电子设备及存储介质与流程

本发明涉及人工智能领域,具体而言,涉及一种运行态程序的分析方法及其装置、电子设备及存储介质。


背景技术:

1、相关技术中,在开展生产运行态程序问题分析的过程中,采用基于tsa(threadstate analysis,即线程状态分析办法)分析手段进行问题分析。这种分析手段通过快速获取程序运行态快照,并通过对其中线程所处状态、出现异常程序栈等情况的观察分析,运用专家经验加以判断,快速得出问题程序的定位结果,即对程序运行态线程快照进行分析,借助专家经验,分析定位程序运行时发生的问题。

2、然而,上述分析手段主要依赖于专家处理过程,经验有差距、或非程序对应技术栈专业领域的专家(例如,缺乏经验的专家,或仅有c#语言(一种程序语言)技术栈背景的专家让其去分析java语言(一种程序语言)技术栈的运行态问题),基于程序问题的线程状态分析就可能存在困难,并且,这种专家依赖并非是一次性的,即便是同种问题的多次出现,对专家的依赖仍然存在,因此,相关技术中的tsa分析手段的准确度以及效率较低,都受限于实际专家经验情况。

3、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本发明实施例提供了一种运行态程序的分析方法及其装置、电子设备及存储介质,以至少解决相关技术中对运行态程序的分析依赖于专家经验,导致分析的准确度以及效率都较低的技术问题。

2、根据本发明实施例的一个方面,提供了一种运行态程序的分析方法,包括:采集预设时间段内待分析程序的线程快照集合,其中,所述待分析程序是处于运行态的程序,所述线程快照集合包括:n个线程快照,n为大于等于1的正整数,所述线程快照的结构是文本结构;将所述预设时间段内每个时间点对应的所述线程快照的所述文本结构转化为树形结构,得到线程模型集合,其中,所述线程模型集合包括:m个线程模型,m为大于等于1的正整数,将每个所述线程模型表征为点,将所述线程模型集合表征为点集;采用预设聚类算法以及预设距离算法处理所述点集,得到处理结果;在所述处理结果指示存在离散点的情况下,在预设异常数据库中匹配与所述离散点对应的所述线程模型的异常因素,并在匹配成功的情况下展示所述异常因素,其中,所述预设异常数据库预先存储有所述线程模型的所述异常因素。

3、可选地,采集预设时间段内待分析程序的线程快照集合的步骤,包括:依据预设时间间隔,在所述预设时间段上选取l个所述时间点,其中,l为大于等于1的正整数;采用预设指令,获取每个所述时间点上的所述待分析程序的所述线程快照,并将所述线程快照存储至预设时序数据库。

4、可选地,将所述预设时间段内每个时间点对应的所述线程快照的所述文本结构转化为树形结构的步骤,包括:获取所述线程快照的文本内容;基于所述文本内容中的程序栈,确定操作顺序;将所述操作顺序指示的第一步操作表征为树根;依据所述操作顺序指示的其他操作的其他操作顺序,在所述树根上逐步将所述其他操作表征为树枝,得到所述树形结构,其中,所述其他操作是指除了所述第一步操作外的剩余操作,所述其他操作顺序是指除了所述第一步操作外的所述其他操作的执行顺序。

5、可选地,采用预设聚类算法以及预设距离算法处理所述点集,得到处理结果的步骤,包括:对所述点集中每个点对应的所述线程模型进行预设哈希处理,得到目标点集;从所述目标点集中选择任一点表征为待确认点,并确定所述待确认点是否为所述离散点,其中,确定所述待确认点是否为所述离散点的步骤包括:判断在所述待确认点的预设范围内存在的点数是否超过预设数量阈值,得到判断结果,其中,所述预设范围是以所述待确认点为中心,通过预设半径确定的范围;在所述判断结果指示在所述待确认点的所述预设范围内存在的点数没有超过所述预设数量阈值,将所述待确认点确定为所述离散点;从所述目标点集中选择另一点表征为所述待确认点,执行确定所述待确认点是否为所述离散点的步骤,直到所述目标点集中的所有点都判断完成,得到所述处理结果。

6、可选地,判断在所述待确认点的预设范围内存在的点数是否超过预设数量阈值,得到判断结果的步骤,包括:采用所述预设距离算法计算所述待确认点与所述目标点集中其他点之间的点距离;在所述点距离小于等于所述预设半径的情况下,确定所述其他点位于所述待确认点的所述预设范围内;确定位于所述待确认点的所述预设范围内的所述其他点的数量,得到所述点数;比较所述点数与所述预设数量阈值,得到所述判断结果。

7、可选地,在采用所述预设距离算法计算所述待确认点与所述目标点集中其他点之间的点距离之前,还包括:确定初始距离算法,其中,所述初始距离算法包括:宽度比较算法、深度比较算法;在所述宽度比较算法上增加惩罚算法,并在所述深度比较算法上增加比重算法,得到所述预设距离算法,其中,所述惩罚算法用于在两颗树形的宽度的宽度比例一致但所述宽度的宽度值不同的情况下,增加距离值;所述比重算法用于增加每颗所述树形的深度比重,使得在两颗所述树形的所述宽度值相同,但所述宽度值指示的所述宽度位于不同深度的情况下,增加距离值;所述树形是所述点对应的所述线程模型表征得到的。

8、可选地,在预设异常数据库中匹配与所述离散点对应的所述线程模型的异常因素的步骤,包括:确定所述离散点与所述预设异常数据库中存储的所有所述线程模型表征的点之间的距离值,得到距离值集合,其中,每个所述距离值对应有线程模型标识;在所述距离值集合中选择最小距离值;在所述最小距离值小于等于预设距离阈值的情况下,确定所述离散点与所述最小距离值对应的所述线程模型标识指示的目标线程模型匹配成功;将所述目标线程模型的所述异常因素作为所述离散点对应的所述线程模型的所述异常因素。

9、可选地,在所述距离值集合中选择最小距离值之后,还包括:在所述最小距离值大于所述预设距离阈值的情况下,将所述离散点对应的所述线程模型发送至处理终端进行处理,其中,所述处理终端确定所述线程模型中每个操作的操作比例,并基于所述操作的预设比例范围,分析所述操作的所述操作比例,得到所述线程模型的所述异常因素,并将所述线程模型的所述异常因素加入到所述预设异常数据库。

10、根据本发明实施例的另一方面,还提供了一种运行态程序的分析装置,包括:采集单元,用于采集预设时间段内待分析程序的线程快照集合,其中,所述待分析程序是处于运行态的程序,所述线程快照集合包括:n个线程快照,n为大于等于1的正整数,所述线程快照的结构是文本结构;转化单元,用于将所述预设时间段内每个时间点对应的所述线程快照的所述文本结构转化为树形结构,得到线程模型集合,其中,所述线程模型集合包括:m个线程模型,m为大于等于1的正整数,将每个所述线程模型表征为点,将所述线程模型集合表征为点集;处理单元,用于采用预设聚类算法以及预设距离算法处理所述点集,得到处理结果;匹配单元,用于在所述处理结果指示存在离散点的情况下,在预设异常数据库中匹配与所述离散点对应的所述线程模型的异常因素,并在匹配成功的情况下展示所述异常因素,其中,所述预设异常数据库预先存储有所述线程模型的所述异常因素。

11、可选地,所述采集单元包括:第一选取模块,用于依据预设时间间隔,在所述预设时间段上选取l个所述时间点,其中,l为大于等于1的正整数;第一获取模块,用于采用预设指令,获取每个所述时间点上的所述待分析程序的所述线程快照,并将所述线程快照存储至预设时序数据库。

12、可选地,所述转化单元包括:第二获取模块,用于获取所述线程快照的文本内容;第一确定模块,用于基于所述文本内容中的程序栈,确定操作顺序;第一表征模块,用于将所述操作顺序指示的第一步操作表征为树根;第二表征模块,用于依据所述操作顺序指示的其他操作的其他操作顺序,在所述树根上逐步将所述其他操作表征为树枝,得到所述树形结构,其中,所述其他操作是指除了所述第一步操作外的剩余操作,所述其他操作顺序是指除了所述第一步操作外的所述其他操作的执行顺序。

13、可选地,所述处理单元包括:第一处理模块,用于对所述点集中每个点对应的所述线程模型进行预设哈希处理,得到目标点集;第二确定模块,用于从所述目标点集中选择任一点表征为待确认点,并确定所述待确认点是否为所述离散点,其中,确定所述待确认点是否为所述离散点的步骤包括:判断在所述待确认点的预设范围内存在的点数是否超过预设数量阈值,得到判断结果,其中,所述预设范围是以所述待确认点为中心,通过预设半径确定的范围;在所述判断结果指示在所述待确认点的所述预设范围内存在的点数没有超过所述预设数量阈值,将所述待确认点确定为所述离散点;第三表征模块,用于从所述目标点集中选择另一点表征为所述待确认点,执行确定所述待确认点是否为所述离散点的步骤,直到所述目标点集中的所有点都判断完成,得到所述处理结果。

14、可选地,第二确定模块包括:第一计算子模块,用于采用所述预设距离算法计算所述待确认点与所述目标点集中其他点之间的点距离;第一确定子模块,用于在所述点距离小于等于所述预设半径的情况下,确定所述其他点位于所述待确认点的所述预设范围内;第二确定子模块,用于确定位于所述待确认点的所述预设范围内的所述其他点的数量,得到所述点数;第一比较子模块,用于比较所述点数与所述预设数量阈值,得到所述判断结果。

15、可选地,所述分析装置还包括:第三确定模块,用于在采用所述预设距离算法计算所述待确认点与所述目标点集中其他点之间的点距离之前,确定初始距离算法,其中,所述初始距离算法包括:宽度比较算法、深度比较算法;第一增加模块,用于在所述宽度比较算法上增加惩罚算法,并在所述深度比较算法上增加比重算法,得到所述预设距离算法,其中,所述惩罚算法用于在两颗树形的宽度的宽度比例一致但所述宽度的宽度值不同的情况下,增加距离值;所述比重算法用于增加每颗所述树形的深度比重,使得在两颗所述树形的所述宽度值相同,但所述宽度值指示的所述宽度位于不同深度的情况下,增加距离值;所述树形是所述点对应的所述线程模型表征得到的。

16、可选地,所述匹配单元包括:第四确定模块,用于确定所述离散点与所述预设异常数据库中存储的所有所述线程模型表征的点之间的距离值,得到距离值集合,其中,每个所述距离值对应有线程模型标识;第一选择模块,用于在所述距离值集合中选择最小距离值;第五确定模块,用于在所述最小距离值小于等于预设距离阈值的情况下,确定所述离散点与所述最小距离值对应的所述线程模型标识指示的目标线程模型匹配成功;第一作为模块,用于将所述目标线程模型的所述异常因素作为所述离散点对应的所述线程模型的所述异常因素。

17、可选地,所述分析装置还包括:第一发送模块,用于在所述距离值集合中选择最小距离值之后,在所述最小距离值大于所述预设距离阈值的情况下,将所述离散点对应的所述线程模型发送至处理终端进行处理,其中,所述处理终端确定所述线程模型中每个操作的操作比例,并基于所述操作的预设比例范围,分析所述操作的所述操作比例,得到所述线程模型的所述异常因素,并将所述线程模型的所述异常因素加入到所述预设异常数据库。

18、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述运行态程序的分析方法。

19、根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述运行态程序的分析方法。

20、在本公开中,采集预设时间段内待分析程序的线程快照集合,将预设时间段内每个时间点对应的线程快照的文本结构转化为树形结构,得到线程模型集合,将每个线程模型表征为点,将线程模型集合表征为点集,采用预设聚类算法以及预设距离算法处理点集,得到处理结果,在处理结果指示存在离散点的情况下,在预设异常数据库中匹配与离散点对应的线程模型的异常因素,并在匹配成功的情况下展示异常因素。在本公开中,可以将采集到的预设时间段内每个时间点对应的线程快照的文本结构转化为树形结构,以得到线程模型集合,然后将每个线程模型表征为点,得到点集,采用预设聚类算法以及预设距离算法处理点集,如果得到的处理结果指示存在离散点,则可以在预设异常数据库中匹配与离散点对应的线程模型的异常因素,并在匹配成功后展示该异常因素,能够有效降低对专家经验的依赖,提高分析的准确度以及效率,进而解决了相关技术中对运行态程序的分析依赖于专家经验,导致分析的准确度以及效率都较低的技术问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1