System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于多模态模型的性能微基准运行时间预测方法技术_技高网

一种基于多模态模型的性能微基准运行时间预测方法技术

技术编号:40112302 阅读:8 留言:0更新日期:2024-01-23 19:21
本发明专利技术公开了一种基于多模态模型的性能微基准运行时间预测方法。本发明专利技术的方法借助代码静态分析技术来获取性能微基准的代码多维特征,包括代码序列、语法结构、控制流,并通过多模态模型进行特征学习,并预测微基准运行时间。这种预测方法具有精度高、效率高等特点,能在微基准执行之前有效预测其运行时间,及时通报测试人员采取相应的性能测试方案。区别于现有的性能测试仅对微基准执行结果进行事后分析的特点,本方法提出的微基准运行时间预测方法适用于性能异常的静态检测,具有更好的时效性。

【技术实现步骤摘要】

本专利技术涉及软件性能测试领域,具体涉及一种基于多模态模型的性能微基准运行时间预测方法


技术介绍

1、性能是软件系统必须满足的关键非功能需求。例如,结账流程每慢一秒,亚马逊每年就会损失16亿美元。与功能缺陷不同,性能缺陷通常在软件演化过程中是不显著的,经过逐步积累放大,最终导致诸如用户体验不佳、响应时间长和系统吞吐量低等问题。除此之外,性能缺陷还会占用额外的资源(如内存),也可能会导致大规模的代码修复工作(如大规模代码重构),这都意味着不可预测的额外成本。性能测试的最终目标是获得良好的端到端性能。尽管每个组件的性能对系统端到端性能的影响不一定是线性的,但组件级别的明显性能问题可能会波及到系统级别。因此,首先必须确保系统各个组件的性能足够。为了解决这一问题,一些性能单元测试的方法,如性能微基准测试,被用于精确评估小规模源代码段(如方法、语句)的性能。目前,已有多种性能微基准测试框架(如java生态系统中的jmh),可以结合持续集成与构建过程,实现性能微基准测试的自动化以尽早检测性能问题。

2、然而,由于性能测试不可避免地存在度量偏差、测试结果不稳定等因素,往往需要重复多次运行,导致运行耗时长、成本高。一次稳定的性能测试需要消耗大量的时间,研究人员一直在研究通过优化代码或确定测试用例优先级来加快测试过程的解决方案。本专利技术旨在为开发人员提供能微基准执行时间的预测,从而能在微基准执行之前有效预测其运行时间,及时通报测试人员采取相应的性能测试方案。


技术实现思路

1、为了克服上述现有技术的不足,提出了一种基于多模态模型的性能测试用例执行时间的预测的方法。本专利技术使用深度学习模型来解决jmh测试组件中的执行时间的预测问题,可有效预测jmh测试组件的执行时间。本专利技术具体采用的技术方案如下:

2、第一方面,本专利技术提供了一种基于多模态模型的性能微基准运行时间预测方法,其包括以下步骤:

3、s1:获取软件系统项目的源代码并扫描所有源代码文件,将其中带有微基准测试框架@benchmark注解的代码块作为微基准,软件系统项目中的所有待测试微基准构成微基准集合;然后利用微基准所在的java类的全类名,获取微基准集合中每个微基准所在类的源代码;

4、s2:对于微基准集合中每个微基准所在类的源代码,分别从中提取出源代码的序列特征、抽象语法树特征和控制流图特征;

5、s3:将微基准集合中每个微基准对应的序列特征、抽象语法树特征和控制流图特征输入预测模型中,先由多模态的特征表示层对输入的三个特征分别进行编码,再由基于注意力机制的特征融合层对编码后的三个特征进行融合,最后将融合后的特征输入微基准执行时间的预测层,得到每个微基准的性能测试用例执行时间预测值。

6、作为上述第一方面的优选,所述s2中,对于微基准集合中每个微基准bi所在类的源代码ci,从源代码ci中提取三个特征的方法如下:

7、s21:将源代码ci按行切分,将每一行源代码进行分词操作后,采用词嵌入技术将每个分词后的元素映射为对应的词嵌入向量,从而获得源代码的序列特征

8、s22:解析源代码ci,获取其中各函数的语法信息,形成抽象语法树ai,并进一步解析抽象语法树的基本结构信息,基于数据的流向和条件语句增强抽象语法树ai中的数据流和控制流的连接关系,形成流增强的抽象语法树;再对流增强的抽象语法树的所有节点和边进行向量化表示,形成抽象语法树特征其中,流增强的抽象语法树中每条边的特征均使用onehot编码而成,每个节点的特征由连接该节点的所有边的特征求和而成;

9、s23:首先,分析源代码ci,获取源代码ci中每个函数的控制流图,每个控制流图的节点内容是一行代码语句,为源代码ci创建控制流图集合gi,gi初始化为所有ci中包含的函数的控制流图的集合,获取控制流图集合gi中的所有控制流图节点的代码语句并构建为一个语料库,训练doc2vec模型;然后,根据语法规则,分析源代码ci中每个函数体内的函数调用语句,获取源代码中微基准调用的函数集合,并且基于内联函数原则在对应的控制流图gi中进行边的连接,同时根据语法规则,获取所有带有@setup和@teardown注解的函数合集,根据微基准测试框架的顺序性构建在对应的控制流图gi中的边连接;最后,利用训练后的doc2vec模型,对控制流图集合gi中每个控制流图gi的所有节点属性和边属性进行向量表示,生成控制流图特征

10、作为上述第一方面的优选,所述s21中,使用换行符“\n”作为分隔符对源代码ci进行按行切分,再使用符号“.”、“,”、“;”、“(”、“)”、“!”、“”作为分隔符对每一行源代码进行分词操作。

11、作为上述第一方面的优选,所述s22中,利用javalang解析器解析源代码ci,获取ci中各函数的语法信息,形成抽象语法树ai。

12、作为上述第一方面的优选,所述s23中,利用tinycfg工具分析源代码ci,获取ci中每个函数的控制流图。

13、作为上述第一方面的优选,所述s3中,预测模型中的前向数据处理流程如下:

14、s31:针对输入预测模型的微基准对应的序列特征抽象语法树特征和控制流图特征将三个特征输入多模态的特征表示层进行编码,分别形成第一编码特征第二编码特征和第三编码特征其中,序列特征采用双向长短期记忆网络进行编码,抽象语法树特征采用第一编码网络进行编码,控制流图特征采用第二编码网络进行编码,所述第一编码网络和第二编码网络均由graph u-nets网络、gat网络和全局池化层级联而成;

15、s32:将第一编码特征第二编码特征和第三编码特征输入基于注意力机制的特征融合层,通过注意力机制进行特征融合,得到融合特征向量;

16、s33、将所述融合特征向量输入微基准执行时间的预测层中,先依次经过两层带relu激活函数的线性层,再通过一层带有tanh激活函数的线性层,最后输出获得微基准的性能测试用例执行时间预测值。

17、作为上述第一方面的优选,所述s3中,预测模型用于实际推理前需进行有监督训练,训练采用的损失函数为均方误差损失。

18、作为上述第一方面的优选,所述s3中,最终的预测结果和微基准对应的源代码数据被保存下来作为样本,待经过质量控制后的样本数量满足要求后对所述预测模型进行增量更新。

19、第二方面,本专利技术提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述第一方面任一所述的基于多模态模型的性能微基准运行时间预测方法。

20、第三方面,本专利技术提供了一种计算机电子设备,其包括存储器和处理器;

21、所述存储器,用于存储计算机程序;

22、所述处理器,用于当执行所述计算机程序时,实现如上述第一方面任一所述的基于多模态模型的性能微基准运行时间预测方法。

23、本专利技术通过提取jmh测试组件的三个模态,并使用多本文档来自技高网...

【技术保护点】

1.一种基于多模态模型的性能微基准运行时间预测方法,其特征在于包括以下步骤:

2.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S2中,对于微基准集合中每个微基准bi所在类的源代码Ci,从源代码Ci中提取三个特征的方法如下:

3.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S21中,使用换行符“\n”作为分隔符对源代码Ci进行按行切分,再使用符号“.”、“,”、“;”、“(”、“)”、“!”、“”作为分隔符对每一行源代码进行分词操作。

4.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S22中,利用javalang解析器解析源代码Ci,获取Ci中各函数的语法信息,形成抽象语法树Ai。

5.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S23中,利用TinyCFG工具分析源代码Ci,获取Ci中每个函数的控制流图。

6.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S3中,预测模型中的前向数据处理流程如下:

7.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S3中,预测模型用于实际推理前需进行有监督训练,训练采用的损失函数为均方误差损失。

8.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述S3中,最终的预测结果和微基准对应的源代码数据被保存下来作为样本,待经过质量控制后的样本数量满足要求后对所述预测模型进行增量更新。

9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~8任一所述的基于多模态模型的性能微基准运行时间预测方法。

10.一种计算机电子设备,其特征在于,包括存储器和处理器;

...

【技术特征摘要】

1.一种基于多模态模型的性能微基准运行时间预测方法,其特征在于包括以下步骤:

2.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述s2中,对于微基准集合中每个微基准bi所在类的源代码ci,从源代码ci中提取三个特征的方法如下:

3.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述s21中,使用换行符“\n”作为分隔符对源代码ci进行按行切分,再使用符号“.”、“,”、“;”、“(”、“)”、“!”、“”作为分隔符对每一行源代码进行分词操作。

4.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述s22中,利用javalang解析器解析源代码ci,获取ci中各函数的语法信息,形成抽象语法树ai。

5.根据权利要求1所述的基于多模态模型的性能微基准运行时间预测方法,其特征在于,所述s23中,利用tinycfg工具...

【专利技术属性】
技术研发人员:陈洁张宏帅俞东进张龙
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1