一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种计算机程序性能的测试方法、系统及相关装置与流程

2022-03-19 21:06:03 来源:中国专利 TAG:


1.本技术涉及电子设备测试领域,特别涉及一种计算机程序性能的测试方法、系统及相关装置。


背景技术:

2.随着信息技术的快速发展与广泛应用,计算机程序也越来越多,程序运行成本也越来越大;计算机程序因硬件、软件、使用情况等不同,导致用户使用体验不同。尤其对于高并发、高访问量的平台,为了用户体验,平台因硬件达到瓶颈致使程序服务瘫痪往往是无法接受的,因此找到计算机程序性能瓶颈就变的十分重要。可以针对性的增强硬件性能,而不是一味的增加硬件性能,可以节约大量的成本,避免资源不必要的浪费,提升用户使用体验。因此迫切需要对程序性能瓶颈进行准确分析,找出瓶颈点并针对瓶颈点进行补强,就成为了当前迫切需要解决的问题。
3.以往的程序性能达到瓶颈分析方法只是简单的查看一些监测工具的检测结果,但计算机硬件及参数繁多,很难在繁多的硬件参数中筛选出对计算机程序性能影响较大的参数。其次各硬件之间相互作用,在其共同作用下对计算机程序性能产生影响,也难以定量的评价各硬件指标对程序性能的影响程度。


技术实现要素:

4.本技术的目的是提供一种计算机程序性能的测试方法、测试系统、计算机可读存储介质和电子设备,能够提高计算机程序性能瓶颈测试的精度。
5.为解决上述技术问题,本技术提供一种计算机程序性能的测试方法,具体技术方案如下:
6.获取待测试程序和硬件参数库;
7.向处于虚拟化环境中的所述待测试程序输入所述硬件参数库中的模型参数;
8.对输入所述模型参数的待测试程序进行参数全局敏感性分析,根据响应时间确定各所述模型参数的灵敏度;
9.移除灵敏度低于响应时间阈值的模型参数,得到关键硬件参数库,以便利用所述关键硬件参数库对所述待测试程序进行性能测试。
10.可选的,根据响应时间确定各所述模型参数的灵敏度之前,还包括:
11.根据所述模型参数的灵敏度序列设置所述响应时间阈值。
12.可选的,向处于虚拟化环境中的所述待测试程序输入所述模型参数包括:
13.基于拉丁超立方体从硬件参数库随机抽取模型参数组;
14.按照所述模型参数组在虚拟化环境中运行所述待测试程序;所述模型参数组包括cpu核数、内存大小、内存频率、gpu卡数、gpu显存大小、磁盘大小、磁盘个数、磁盘读速率、磁盘写速率、网络带宽中任一项或者任意几项的组合。
15.可选的,对输入所述模型参数的待测试程序进行参数全局敏感性分析包括:
16.基于sobol法对输入所述模型参数的待测试程序进行参数全局敏感性分析。
17.可选的,基于sobol法对输入所述模型参数的待测试程序进行参数全局敏感性分析包括:
18.确定所述待测试程序与灵敏度之间的关系表达式;
19.将所述模型参数作为表达式参数填入所述关系表达式;
20.计算所述灵敏度的方差;
21.根据所述方差确定单个模型参数与其他模型参数之间相互作用的敏感度。
22.本技术还提供一种计算机程序性能的测试系统,包括:
23.获取模块,用于获取待测试程序和硬件参数库;
24.参数输入模块,用于向处于虚拟化环境中的所述待测试程序输入所述硬件参数库中的模型参数;
25.敏感性分析模块,用于对输入所述模型参数的待测试程序进行参数全局敏感性分析,根据响应时间确定各所述模型参数的灵敏度;
26.关键参数测试模块,用于移除灵敏度低于响应时间阈值的模型参数,得到关键硬件参数库,以便利用所述关键硬件参数库对所述待测试程序进行性能测试。
27.可选的,还包括:
28.阈值确定模块,用于根据所述模型参数的灵敏度序列设置所述响应时间阈值。
29.可选的,敏感性分析模块包括:
30.分析单元,用于基于sobol法对输入所述模型参数的待测试程序进行参数全局敏感性分析。
31.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
32.本技术还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
33.本技术提供一种计算机程序性能的测试方法,包括:获取待测试程序和硬件参数库;向处于虚拟化环境中的所述待测试程序输入所述硬件参数库中的模型参数;对输入所述模型参数的待测试程序进行参数全局敏感性分析,根据响应时间确定各所述模型参数的灵敏度;移除灵敏度低于响应时间阈值的模型参数,得到关键硬件参数库,以便利用所述关键硬件参数库对所述待测试程序进行性能测试。
34.本技术对模型参数进行全局敏感度分析,从而确定灵敏度大于响应时间阈值的模型参数,用于对待测试程序进行性能测试,筛选出有效的模型参数,减少需要测试的参数个数,简化了性能分析的工作量和复杂度。
35.本技术还提供一种计算机程序性能的测试系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
37.图1为本技术实施例所提供的一种计算机程序性能的测试方法的流程图;
38.图2为本技术实施例所提供的一种计算机程序性能的测试系统结构示意图。
具体实施方式
39.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
40.请参考图1,图1为本技术实施例所提供的一种计算机程序性能的测试方法的流程图,该方法包括:
41.s101:获取待测试程序和硬件参数库;
42.本步骤旨在获取待测试程序和硬件参数库。在此对于如何获取待测试程序不作限定,且对于待测试程序的程序格式等不作具体限定。而硬件参数库中记录了待测试程序运行所需的硬件参数,即所占用的硬件资源,,包括但不限于cpu、内存、gpu、磁盘io等等,且每种硬件资源,还包括不同的配置,例如不同的cpu频率、cpu架构、cpu核心数量等等。
43.此外,硬件参数库中的硬件参数可以为分组式,即每一组可以包括不同的硬件资源对应参数,例如其中一组可以同时包括cpu、内存、cpu三种硬件资源的硬件参数。当然,也可以由用户自定义参数的分组,在此不作具体限定。
44.s102:向处于虚拟化环境中的所述待测试程序输入所述硬件参数库中的模型参数;
45.本步骤旨在向待测试程序输入模型参数。首先需要保证待测试程序处于虚拟化环境,即将待测试程序在应用过程中与硬件分离,并模拟其所需的硬件资源,虚拟化技术能够将计算机资源与硬件分离并适当分配资源,能够以物理硬件系统为基础创建不同模拟环境。在此对于采用何种虚拟化环境不作限定。优选的,本步骤一种可行的执行方式如下:
46.s1021:基于拉丁超立方体从硬件参数库随机抽取模型参数组;
47.s1022:按照所述模型参数组在虚拟化环境中运行所述待测试程序;
48.拉丁超立方体是一种从多元参数分布中近似随机抽样的方法,需要注意的是,步骤s1021抽取模型参数组,其通常包含至少两种硬件参数。通过拉丁超立方体的随机抽样,能够避免随机抽样可能导致样本分布不均匀的问题,能够使得抽取的样本更加具有代表。
49.还需要注意的是,本步骤中的模型参数指用于参与待测试程序测试的参数,主要指运行待测试程序的硬件参数。
50.s103:对输入所述模型参数的待测试程序进行参数全局敏感性分析,根据响应时间确定各所述模型参数的灵敏度;
51.灵敏度较高的硬件参数既可作为计算机程序性能瓶颈。使用全局敏感度分析确定灵敏参数,排除敏感度较低的参数,从而减少不灵敏参数对标定的影响;参数标定之后再次针对标定结果进行敏感度分析,以此检查灵敏参数有无漏选,以防初次分析时不灵敏,参数取标定结果时变得灵敏。因此敏感度分析与参数标定为一个不断循环进化的过程,直至敏感度分析确定参数与上次确定的参数一致且标定结果满足要求为止。
52.本步骤中,可以基于sobol法对输入所述模型参数的待测试程序进行参数全局敏感性分析。具体过程如下:
53.s1031:确定所述待测试程序与灵敏度之间的关系表达式;
54.s1032:将所述模型参数作为表达式参数填入所述关系表达式;
55.s1033:计算所述灵敏度的方差;
56.s1034:根据所述方差确定单个模型参数与其他模型参数之间相互作用的敏感度。
57.在应用sobol法时,假设待测试程序的灵敏度模型为y=f(x)(x=x1,x2,

,xn),且xi服从[0,1]均匀分布,f2(x)可积,模型可分解为:
[0058][0059]
则模型总的方差也可分解为单个模型参数和每个模型参数相互组合的影响:
[0060][0061]
对该式归一化,并设:
[0062][0063]
可获得模型单个参数及参数之间相互作用的敏感度s,可得:
[0064][0065]
式中,si称之为1次敏感度;s
ij
为2次敏感度,依此类推;s
1,2,...,n
为n次敏感度,总共有2
n-1项。第i个参数总敏感度s
tj
定义为:
[0066]stj
=∑s(i)[0067]
它表示所有包含第i个参数的敏感度。
[0068]
基于以上数学模型,对待测试程序的模型参数进行敏感度分析,即可得到每个模型参数的灵敏度,即模型的响应时间。
[0069]
s104:移除灵敏度低于响应时间阈值的模型参数,得到关键硬件参数库,以便利用所述关键硬件参数库对所述待测试程序进行性能测试。
[0070]
本步骤需要移除灵敏度低于响应时间阈值的模型参数,一旦灵敏度较低,说明该模型参数的变化对于待测试程序的影响较小,其表现为程序响应时间变化较小,则说明该待测试程序对该模型参数的敏感度较低,同样也说明了该模型参数不宜作为模型参数对待测试程序进行测试。
[0071]
容易理解的是,在执行本步骤前,可以根据模型参数的灵敏度序列设置响应时间阈值。即在对待测试程序输入不同的模型参数后,可以根据模型参数的灵敏度序列设置响应时间阈值。通常,每个模型参数或者每组模型参数可得到相应的灵敏度,则可以根据得到的灵敏度数量,择优选择其中部分数量,例如前20%灵敏度的模型参数作为测试的硬件参数。
[0072]
本技术对模型参数进行全局敏感度分析,从而确定灵敏度大于响应时间阈值的模型参数,用于对待测试程序进行性能测试,筛选出有效的模型参数,减少需要测试的参数个
数,简化了性能分析的工作量和复杂度。
[0073]
下面对本技术实施例提供的一种计算机程序性能的测试系统进行介绍,下文描述的计算机程序性能的测试系统与上文描述的计算机程序性能的测试方法可相互对应参照。
[0074]
参见图2,图2为本技术实施例所提供的一种计算机程序性能的测试系统结构示意图,本技术还提供一种计算机程序性能的测试系统,包括:
[0075]
获取模块100,用于获取待测试程序和硬件参数库;
[0076]
参数输入模块200,用于向处于虚拟化环境中的所述待测试程序输入所述硬件参数库中的模型参数;
[0077]
敏感性分析模块300,用于对输入所述模型参数的待测试程序进行参数全局敏感性分析,根据响应时间确定各所述模型参数的灵敏度;
[0078]
关键参数测试模块400,用于移除灵敏度低于响应时间阈值的模型参数,得到关键硬件参数库,以便利用所述关键硬件参数库对所述待测试程序进行性能测试。
[0079]
基于上述实施例,作为优选的实施例,还包括:
[0080]
阈值确定模块,用于根据所述模型参数的灵敏度序列设置所述响应时间阈值。
[0081]
基于上述实施例,作为优选的实施例,敏感性分析模块300包括:
[0082]
分析单元,用于基于sobol法对输入所述模型参数的待测试程序进行参数全局敏感性分析。
[0083]
本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0084]
本技术还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
[0085]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0086]
本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0087]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献