计算机程序的性能检测方法、系统、电子设备及存储介质与流程

文档序号:29166183发布日期:2022-03-09 02:39阅读:129来源:国知局
计算机程序的性能检测方法、系统、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,特别涉及一种计算机程序的性能检测方法、系统、电子设备及存储介质。


背景技术:

2.随着信息技术的快速发展与广泛应用,计算机程序也随处可见,厂商往往考虑如何使程序性能产出与成本投入比的最大化,做到程序性能、硬件成本、开发人力成本等因素的平衡。建立程序性能评级指标体系能够量化评估程序性能,与此同时,人力成本、硬件成本、时间成本损失等也可以计算出来,这样就可以准确计算出投入产出比(roi, return on investment),增加投入产出比,可以节约大量的成本,避免资源不必要的浪费。
3.相关技术中,通常只是简单的选取某一指标(如用户满意度、响应时间或复杂度)作为程序性能的评价标准,但可选的程序性能指标繁多,很难在繁多的指标中筛选出能够最大程度反应计算机程序性能的指标。
4.因此,如何提高计算机程序的性能检测准确度是本领域技术人员目前需要解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种计算机程序的性能检测方法、系统、电子设备及存储介质,能够提高计算机程序的性能检测准确度。
6.为解决上述技术问题,本技术提供一种计算机程序的性能检测方法,该状态预警方法包括:获取目标计算机程序的性能评价参数;其中,所述性能评价参数包括多项预设指标参数,每一项所述预设指标参数包括多条测试数据;构建所述性能评价参数的数据矩阵,并对所述数据矩阵执行无量纲化处理得到标准数据矩阵;利用pca降维算法对所述标准数据矩阵进行主成分分析,得到所述性能评价参数的主成分;根据所述性能评价参数的主成分计算性能综合评价指标值,并根据所述性能综合评价指标值确定所述目标计算机程序的性能检测结果。
7.可选的,利用pca降维算法对所述标准数据矩阵进行主成分分析,得到所述性能评价参数的主成分,包括:计算所述标准数据矩阵的协方差矩阵,并确定所述协方差矩阵中每一特征向量的特征值;按照从大到小的顺序对所述特征值进行排序,并计算排序前r位的特征值对应的主成分的累计贡献率;按照约束条件确定新指标数量m;其中,所述约束条件为排序前m位的特征值对应
的主成分的累计贡献率大于预设值;通过pca降维算法将所有所述预设指标参数转化为m个新指标参数,并将所述新指标参数设置为所述性能评价参数的主成分。
8.可选的,通过pca降维算法将所有所述预设指标参数转化为m个新指标参数包括:确定每一所述主成分对应的特征值的标准正交特征向量,根据所述标准正交特征向量中的元素与所述标准数据矩阵中每一项预设指标参数执行所述pca降维算法对应的计算,得到m个所述新指标参数。
9.可选的,根据所述性能评价参数的主成分计算性能综合评价指标值,包括:将所述性能评价参数的主成分的贡献率作为权重,并通过对所有所述主成分进行加权计算构建综合评价函数;将所述标准数据矩阵中的数据代入所述综合评价函数,得到所述性能综合评价指标值。
10.可选的,构建所述性能评价参数的数据矩阵包括:按照预设规则构建所述性能评价参数的数据矩阵;其中,所述数据矩阵的行数为每一项预设指标参数包含的测试数据总数量,所述数据矩阵的列数为所有所述预设指标参数的总项数,所述数据矩阵中同一列的元素均为同一项预设指标参数的测试数据。
11.可选的,对所述数据矩阵执行无量纲化处理得到标准数据矩阵,包括:确定每一项所述预设指标参数的测试数据的平均值和标准差;根据所述平均值和所述标准差对所述数据矩阵进行无量纲化处理,得到所述标准数据矩阵。
12.可选的,性能评价参数包括响应时间、复杂度、最大每秒查询率、最大每秒事务数、最大并发数、最大吞吐量、最大页面访问量和用户满意度中的任一项或任几项的组合。
13.本技术还提供了一种计算机程序的性能检测系统,该系统包括:参数获取模块,用于获取目标计算机程序的性能评价参数;其中,所述性能评价参数包括多项预设指标参数,每一项所述预设指标参数包括多条测试数据;参数处理模块,用于构建所述性能评价参数的数据矩阵,并对所述数据矩阵执行无量纲化处理得到标准数据矩阵;成分确定模块,用于利用pca降维算法对所述标准数据矩阵进行主成分分析,得到所述性能评价参数的主成分;检测模块,用于根据所述性能评价参数的主成分计算性能综合评价指标值,并根据所述性能综合评价指标值确定所述目标计算机程序的性能检测结果。
14.本技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述计算机程序的性能检测方法执行的步骤。
15.本技术还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述计算机程序的性能检测方法执行的步骤。
16.本技术提供了一种计算机程序的性能检测方法,包括:获取目标计算机程序的性能评价参数;其中,所述性能评价参数包括多项预设指标参数,每一项所述预设指标参数包括多条测试数据;构建所述性能评价参数的数据矩阵,并对所述数据矩阵执行无量纲化处
理得到标准数据矩阵;利用pca降维算法对所述标准数据矩阵进行主成分分析,得到所述性能评价参数的主成分;根据所述性能评价参数的主成分计算性能综合评价指标值,并根据所述性能综合评价指标值确定所述目标计算机程序的性能检测结果。
17.本技术通过获取目标计算机程序的性能评价参数,性能评价参数中可以包括多项预设指标参数,由于各项预设指标参数的量纲可以不相同,因此本技术对性能评价参数的数据矩阵执行无量纲化处理得到标准数据矩阵。通过pca降维算法对所述标准数据矩阵进行主成分分析,能够将多变量的复杂问题被简化为低维空间的简单问题,进而根据性能评价参数的主成分计算性能综合评价指标值。本技术考虑了各项指标参数相互作用对程序性能评价指标体系的影响,能够提高计算机程序的性能检测准确度。本技术同时还提供了一种计算机程序的性能检测系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
18.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本技术实施例所提供的一种计算机程序的性能检测方法的流程图;图2为本技术实施例所提供的一种程序性能评价方法的流程图;图3为本技术实施例所提供的一种计算机程序的性能检测系统的结构示意图。
具体实施方式
20.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.下面请参见图1,图1为本技术实施例所提供的一种计算机程序的性能检测方法的流程图。
22.具体步骤可以包括:s101:获取目标计算机程序的性能评价参数;其中,所述性能评价参数包括多项预设指标参数,每一项所述预设指标参数包括多条测试数据;可选的,各项预设指标参数包括的测试数据的条数可以相同。具体的,上述性能评价参数包括响应时间、复杂度、最大每秒查询率、最大每秒事务数、最大并发数、最大吞吐量、最大页面访问量和用户满意度中的任一项或任几项的组合。上述目标计算机程序可以为数据管理程序、网络攻击行为检测程序等。
23.用户满意度指:从用户的角度出发,将程序性能转为用户对于应用性能的可量化为范围为0-1的满意度评价。响应时间指:从请求端发起请求开始,到请求端接收到服务器端的返回结束,整个过程所耗费的时间。复杂度包括时间复杂度和空间复杂度,时间复杂度指目标计算机程序所需执行的语句(运算)的数量,空间复杂度指目标计算机程序所需存储空间的大小。最大每秒查询率即最大qps(queries per second),最大每秒事务数即最大
tps(transactions per second),最大并发数指同时能处理的请求数量,最大吞吐量指单位时间内处理请求的数量,最大页面访问量指最大pv(page view)。
24.s102:构建所述性能评价参数的数据矩阵,并对所述数据矩阵执行无量纲化处理得到标准数据矩阵;其中,本实施例可以按照预设规则构建所述性能评价参数的数据矩阵;其中,所述数据矩阵的行数为每一项预设指标参数包含的测试数据总数量,所述数据矩阵的列数为所有所述预设指标参数的总项数,所述数据矩阵中同一列的元素均为同一项预设指标参数的测试数据。
25.举例说明,通过上述方式构建的数据矩阵如下:由于数据矩阵根据性能评价参数直接得到,因此数据矩阵中各元素的量纲不完全一致,本实施例通过对所述数据矩阵执行无量纲化处理得到标准数据矩阵。具体的,本实施例可以确定每一项所述预设指标参数的测试数据的平均值和标准差;根据所述平均值和所述标准差对所述数据矩阵进行无量纲化处理,得到所述标准数据矩阵。
26.s103:利用pca降维算法对所述标准数据矩阵进行主成分分析,得到所述性能评价参数的主成分;其中,pca(principal component analysis)降维算法又称主成分分析算法,本实施例利用pca降维算法对所述标准数据矩阵进行主成分分析,得到的主成分为性能评价参数的主成分。主成分的项数少于性能评价参数中包括的预设指标参数的项数,通过上述方式可以将性能评价参数由高维度降低至低维度。pca是一种无监督的数据降维方法,能够将n维特征映射到k维上,减少数据集的维数的同时保持数据集对方差贡献最大的特征。
27.s104:根据所述性能评价参数的主成分计算性能综合评价指标值,并根据所述性能综合评价指标值确定所述目标计算机程序的性能检测结果。
28.其中,在得到性能评价参数的主成分的基础上,本实施例可以基于各个主成分构建综合评价函数,进而利用综合评价函数计算性能综合评价指标值。本实施例可以根据综合评价指标值所在的分数区间输出对应的性能检测结果,如合格或不合格等。性能检测结果指运行程序对资源、时间等的需求。
29.本实施例通过获取目标计算机程序的性能评价参数,性能评价参数中可以包括多项预设指标参数,由于各项预设指标参数的量纲可以不相同,因此本实施例对性能评价参数的数据矩阵执行无量纲化处理得到标准数据矩阵。通过pca降维算法对所述标准数据矩阵进行主成分分析,能够将多变量的复杂问题被简化为低维空间的简单问题,进而根据性能评价参数的主成分计算性能综合评价指标值。本实施例考虑了各项指标参数相互作用对程序性能评价指标体系的影响,能够提高计算机程序的性能检测准确度。评价指标体系指由表征评价对象各方面特性及其相互联系的多个指标,所构成的具有内在结构的有机整体。
30.作为对于图1对应实施例的进一步介绍,本实施例可以通过以下方式获取主成分
并计算性能综合评价指标值,具体可以包括以下步骤:步骤1:计算所述标准数据矩阵的协方差矩阵,并确定所述协方差矩阵中每一特征向量的特征值;步骤2:按照从大到小的顺序对所述特征值进行排序,并计算排序前r位的特征值对应的主成分的累计贡献率;步骤3:按照约束条件确定新指标数量m;其中,所述约束条件为排序前m位的特征值对应的主成分的累计贡献率大于预设值;步骤4:通过pca降维算法将所有所述预设指标参数转化为m个新指标参数,并将所述新指标参数设置为所述性能评价参数的主成分。
31.具体的,本实施例可以确定每一所述主成分对应的特征值的标准正交特征向量,根据所述标准正交特征向量中的元素与所述标准数据矩阵中每一项预设指标参数执行所述pca降维算法对应的计算,得到m个所述新指标参数。
32.步骤5:将所述性能评价参数的主成分的贡献率作为权重,并通过对所有所述主成分进行加权计算构建综合评价函数;步骤6:将所述标准数据矩阵中的数据代入所述综合评价函数,得到所述性能综合评价指标值。
33.其中,本实施例可以将标准数据矩阵中的一组数据带入综合评价函数,上述一组数据指:对目标计算机程序进行一次测试得到的各项预设指标参数的无量纲化处理结果。
34.下面通过在实际应用中的实施例说明上述实施例描述的流程。
35.以往的程序性能评价只是简单的选取某一指标作为程序性能的评价标准,但可选的程序性能指标繁多,很难在繁多的指标中筛选出能够最大程度反应计算机程序性能的指标。其次各指标之间可能存在一些相关关系,不能简单的将各指标进行加权平均,且无法定量的评价程序性能。为解决上述技术问题,本技术提供一种计算机程序性能评价指标方案,本方案能够考虑各指标间相关关系,能够在繁多的指标中筛选出能够反应计算机程序性能的指标,并综合量化程序性能。本技术还能够提高投入产出比,平衡硬件投入与性能产出的关系,节约资源成本,为企业及用户带来巨大的经济效益。
36.通常情况下,计算机程序性能指标有很多,如响应时间、时间复杂度、空间复杂度、最大qps、最大tps、最大并发数、最大吞吐量等,这些指标均可以一定程度上反映程序的性能,但哪个参数或者哪些参数组合能够更准确地反映程序的性能无法确定。如果单独分析每个指标,指标的分析往往是孤立的,并且不能充分利用数据中的信息。盲目地减少指标会失去很多有用的信息,导致错误的结论。因此,有必要找到一种合理的方法,在尽量避免原始指标信息损失的基础上,减少需要分析的指标,从而对所收集的数据进行综合分析。因为变量之间可能存在一定的相关性,可以考虑将密切相关的变量变为尽可能少的新变量,使这些新变量互不相关,因此可以用较少的综合指标来表示。
37.pca主成分分析,使用维数减少的概念将多个指标转换为几个综合指标,转换后的综合指标不仅保留了原始数据信息量,而且在计算过程中自动生成其权重,避免了人为确定权重时的主观性。这些都使得主成分分析法在多指标综合评价中具有特殊优势。在程序性能评价体系中,将现有指标通过主成分分析法转换为少数几个综合指标,即主成分,可以客观有效的进行综合评价。
38.请参见,图2,图2为本技术实施例所提供的一种程序性能评价方法的流程图,本实施例可以包括以下步骤:s201:获取模型指标参数。
39.其中,本实施例可以使用perfdog、apachebench、jmeter等工具或方法获取指标参数。本实施例可以选取响应时间、时间复杂度、空间复杂度、最大qps、最大tps、最大并发数、最大吞吐量等7个指标参数作为评价程序性能的影响因子。
40.s202:指标数据无量纲化处理。
41.由于响应时间、qps等评价指标的量纲各不相同,无法直接进行使用,需进行无量纲化处理以具有可比性。无量纲化后的数据由于对方差进行了归一化,每个维度的量纲等价,因此不同维度之间可以进行相互操作,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
42.具体的,本实施例可以通过无量纲化公式将数据矩阵转化为标准数据矩阵,无量纲化公式如下:;为数据矩阵,为指标无量纲化后的标准数据矩阵,为第j项指标的平均值,为程序的第j项指标的标准差。j指第j项模型指标参数,i指一项模型指标参数的第i条数据。i=1,2,

,e;j=1,2,

,p。p为指标参数的总项数,e为每一项指标参数包含的测试数据的总条数。
43.s203:指标数据主成分分析。
44.其中,主成分分析的过程可以包括以下步骤:(1)计算标准数据矩阵的协方差矩阵s,。t表示转置。
45.(2)计算协方差矩阵s的特征向量:e1,e2,

, en的特征值λi;特征值按大到小排序:λ1,λ2,

,λn。
46.(3)投影数据到选取的特征向量上。
47.令λi代表第i个特征值,定义第i个主元素的贡献率为:;前r个主成分的累计贡献率为:;贡献率表示所定义的主成分在整个数据分析中承担的主要意义占多大的比重,当取前r个主成分来代替原来全部变量时,累计贡献率的大小反应了这种取代的可靠性,累计
贡献率越大,可靠性越大;反之,则可靠性越小。例如可以要求累计贡献率达到85%以上。
48.(4)评价与排序。
49.利用已确定的主成分f1,f2…
,fm,将原有的p个指标转换为m个新指标,由下述线性变化实现:;其中,为主成分fk所对应特征值λk(k=1,2,

,m)的标准正交特征向量。(y=1,2,

,p)表示无量纲化后的第y项指标的值。
50.s204:计算性能综合评价指标值。
51.以每个主成分fk(k=1,2,

,m)的贡献率作为权重,构造综合评价函数f:;依据上式得到计算机程序性能的综合得分。采用主成分分析(pca)方法对7个影响因子进行提取和简化,选取若干指标作为程序性能的最终指标,选择85%的累计贡献率为目标,从而简化性能分析工作量与复杂度。本实施例建立了一套计算机程序性能评价指标体系,科学地量化计算机程序性能是当前迫切需要解决的问题。本实施例将pca应用到程序性能评价体系,将程序性能评价指标体系中各指标无量纲化,本实施例还考虑了繁多程序性能指标相互作用对程序性能评价指标体系的影响。本实施例对于繁多的性能指标,使用主成分分析,一个多变量的复杂问题被简化为低维空间的简单问题。最后通过贡献率与主成分的加权求和,即可量化地得到计算机程序性能。通过计算机程序性能评价指标体系的建立,可用于提高程序性能,分析程序性能瓶颈,提高投入产出率,由此可为企业带来巨大的经济价值。
52.请参见图3,图3为本技术实施例所提供的一种计算机程序的性能检测系统的结构示意图;该系统可以包括:参数获取模块301,用于获取目标计算机程序的性能评价参数;其中,所述性能评价参数包括多项预设指标参数,每一项所述预设指标参数包括多条测试数据;参数处理模块302,用于构建所述性能评价参数的数据矩阵,并对所述数据矩阵执行无量纲化处理得到标准数据矩阵;成分确定模块303,用于利用pca降维算法对所述标准数据矩阵进行主成分分析,得到所述性能评价参数的主成分;检测模块304,用于根据所述性能评价参数的主成分计算性能综合评价指标值,并根据所述性能综合评价指标值确定所述目标计算机程序的性能检测结果。
53.本实施例通过获取目标计算机程序的性能评价参数,性能评价参数中可以包括多项预设指标参数,由于各项预设指标参数的量纲可以不相同,因此本实施例对性能评价参数的数据矩阵执行无量纲化处理得到标准数据矩阵。通过pca降维算法对所述标准数据矩
阵进行主成分分析,能够将多变量的复杂问题被简化为低维空间的简单问题,进而根据性能评价参数的主成分计算性能综合评价指标值。本实施例考虑了各项指标参数相互作用对程序性能评价指标体系的影响,能够提高计算机程序的性能检测准确度。
54.进一步的,成分确定模块303用于计算所述标准数据矩阵的协方差矩阵,并确定所述协方差矩阵中每一特征向量的特征值;还用于按照从大到小的顺序对所述特征值进行排序,并计算排序前r位的特征值对应的主成分的累计贡献率;还用于按照约束条件确定新指标数量m;其中,所述约束条件为排序前m位的特征值对应的主成分的累计贡献率大于预设值;还用于通过pca降维算法将所有所述预设指标参数转化为m个新指标参数,并将所述新指标参数设置为所述性能评价参数的主成分。
55.进一步的,成分确定模块303通过pca降维算法将所有所述预设指标参数转化为m个新指标参数的过程包括:确定每一所述主成分对应的特征值的标准正交特征向量,根据所述标准正交特征向量中的元素与所述标准数据矩阵中每一项预设指标参数执行所述pca降维算法对应的计算,得到m个所述新指标参数。
56.进一步的,检测模块304用于将所述性能评价参数的主成分的贡献率作为权重,并通过对所有所述主成分进行加权计算构建综合评价函数;还用于将所述标准数据矩阵中的数据代入所述综合评价函数,得到所述性能综合评价指标值。
57.进一步的,参数处理模块302构建所述性能评价参数的数据矩阵的过程包括:按照预设规则构建所述性能评价参数的数据矩阵;其中,所述数据矩阵的行数为每一项预设指标参数包含的测试数据总数量,所述数据矩阵的列数为所有所述预设指标参数的总项数,所述数据矩阵中同一列的元素均为同一项预设指标参数的测试数据。
58.进一步的,参数处理模块302对所述数据矩阵执行无量纲化处理得到标准数据矩阵的过程包括:确定每一项所述预设指标参数的测试数据的平均值和标准差;根据所述平均值和所述标准差对所述数据矩阵进行无量纲化处理,得到所述标准数据矩阵。
59.进一步的,性能评价参数包括响应时间、复杂度、最大每秒查询率、最大每秒事务数、最大并发数、最大吞吐量、最大页面访问量和用户满意度中的任一项或任几项的组合。
60.由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
61.本技术还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory ,rom)、随机存取存储器(random access memory ,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
62.本技术还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
63.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围
内。
64.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1