System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及电子数字数据处理的,具体为一种基于并行化的代码片段提取迭代使用方法及系统。
技术介绍
1、中国专利cn102279750b公开了一种基于领域知识共享的迭代式代码生成方法,该方法具体包括,首先基于动态语言开发核心生成系统,所述核心生成系统包括使用接口、开发接口、说明文件、自动化测试和部署套件;使用核心代码生成系统生成常规应用系统,所述常规应用系统包括提取共性知识代码和领域数据,便于实现迭代;在所述共性知识代码和领域数据的基础上,开发特定领域应用系统,使用所述特定领域应用系统可以对共性知识代码进行提取迭代。该方法只实现了对代码的提取迭代,代码提取速度慢,没有关注提取代码片段的运行效率、时间复杂度。
2、同一段程序代码在不同的体系结构上运行时,不能获得良好的时间复杂度;传统的方法通过经验对代码片段进行迭代编译优化,迭代编译优化过程中不能得到最佳代码片段运行时间,导致代码片段可移植性困难,提取迭代难度大;传统的方法每次都需要对代码片段进行复写,同时复写完毕后代码片段并行线程数也很难确定。
技术实现思路
1、针对相关技术中的问题,本专利技术提供了一种基于并行化的代码片段提取迭代使用方法及系统,以克服现有相关技术所存在的上述技术问题。
2、为解决上述技术问题,本专利技术是通过以下技术方案实现的:
3、本专利技术为一种基于并行化的代码片段提取迭代使用方法,包括如下步骤:
4、s1、获取代码片段函数,生成代码片段函数调用时间占比矩阵,使
5、s2、使用代码片段中目标函数时间复杂度和代码片段在程序中的运行时间衡量代码片段的运行质量,并使用黑翅鸢优化算法优化代码片段在程序中的运行时间,得到优化后的代码片段;
6、s3、根据所述优化后的代码片段生成字符串矩阵,对字符串矩阵中字符串进行相似度检测,去除特征相似的代码片段,得到相似度代码片段,将所述相似度代码片段记为第二代码提取迭代条件;
7、s4、结合所述第一代码提取迭代条件和第二代码提取迭代条件,得到待处理的代码片段,运行待处理的代码片段,并调整并行线程数,基于差异化创意搜索算法优化代码片段运行效率,实现代码片段提取迭代。
8、该专利技术首先通过获取代码片段函数,计算代码片段函数的调用时间占比,将调用时间占比记为选取热门函数的条件,使用k近邻法对所述代码片段函数调用时间占比矩阵进行分类,得到代码片段热点函数,将所述代码片段热点函数记为第一代码提取迭代条件;其次使用代码片段中目标函数时间复杂度和代码片段在程序中的运行时间衡量代码片段的运行质量,通过目标函数调用关系得到目标函数时间复杂度,使用黑翅鸢优化算法优化代码片段在程序中的运行时间得到最佳运行时间,通过黑翅鸢捕猎和迁徙位置的改变得到最佳位置,该算法进化能力强、搜索速度快并且寻优能力强;再将代码片段中的字符串转化为字符串特征向量,通过计算字符串特征向量的相似度,分辨字符串是否重复,将重复字符串删去,得到相似度代码片段,将相似度代码片段记为第二代码提取迭代条件;再将第一代码提取迭代条件加入到第二代码提取迭代条件中,完成代码片段提取,最后将待处理的代码片段基于差异化创意搜索算法调整并行线程数,优化代码片段运行效率,实现代码片段迭代,该算法主要基于黑翅鸢攻击策略和迁移行为来提高决策效率,具有解决复杂优化问题的高效能力。
9、优选地,所述s1包括以下步骤:
10、s11、获取代码片段函数,计算所述代码片段函数的调用时间占比得到代码片段函数调用时间占比集合,记为,其中表示第个代码片段函数调用时间占比,设定所述代码片段函数调用时间占比集合中的代码片段函数调用时间占比的特征维度为,生成代码片段函数调用时间占比矩阵如下,
11、,
12、其中,表示代码片段函数调用时间占比矩阵中第个、特征维度为的代码片段函数调用时间占比;
13、设定比较代码片段函数集合,计算所述比较代码片段函数集合中的比较代码片段函数在比较代码片段中的调用时间占比,得到比较代码片段函数时间占比集合;在所述代码片段函数调用时间占比矩阵中选取一列记为第一代码片段函数调用时间占比集合,其中表示代码片段函数调用时间占比矩阵中第个、特征维度为的代码片段函数调用时间占比;
14、s12、设定相似度阈值为,选取所述比较代码片段函数时间占比集合中大于的代码片段函数调用时间占比,记为第二代码片段函数调用时间占比集合;根据所述第一代码片段函数调用时间占比集合和第二代码片段函数调用时间占比集合的样本数据的相似度,将相似度最小值对应的代码片段函数调用时间占比记为临近点,得到临近点集合,其中表示第个临近点;
15、设定表示临近点集合中临近点的代表系数,表示第一代码片段函数调用时间占比集合中代码片段函数调用时间占比的代表系数,表示权重,表示分类函数且当将相似度最小值对应的数据样本在第一代码片段函数调用时间占比集合时分类函数取1,否则分类函数取0;计算所述临近点集合中临近点的权重,计算公式如下,
16、
17、其中,表示临近点集合中临近点的权重,表示临近点集合中第个临近点的代表系数,;
18、计算得到临近点集合中临近点的权重值,选取临近点集合中临近点的权重值最大值,得到所述临近点集合中临近点的权重值最大值对应的临近点的第一代码片段函数调用时间占比集合的样本数据,记为待分类的代码片段函数调用时间占比,根据所述待分类的代码片段函数调用时间占比组成代码片段函数调用时间占比集合,找到所述代码片段函数调用时间占比集合中的代码片段函数调用时间占比对应的代码片段函数,记为代码片段热点函数,将所述代码片段热点函数记为第一代码提取迭代条件。
19、该专利技术通过获取代码片段函数,计算代码片段函数的调用时间占比,将调用时间占比高的作为选取热门函数的条件,再使用k近邻法得到代码片段函数调用时间占比的代表系数,对代码片段函数调用时间占比集合进行分类,得到代码片段热点函数,将所述代码片段热点函数记为第一代码提取迭代条件。
20、优选地,所述s2包括以下步骤:
21、s21、设定代码片段中包含个目标函数,得到目标函数集合为,其中表示第个目标函数,选定所述目标函数集合中目标函数作为初始函数,根据所述初始函数的调用关系生成有向图存入邻接链表中,其中表示调用关系集合;
22、设定所述初始函数的调用关系集合中包含个原子函数,得到原子函数集合为,其中表示第个原子函数,所述原子函数集合中的原子函数的时间复杂度计算过程如下:
23、s211、设定循环体集合为,其中表示第个循环变量,
24、当所述循环体集合中的循环变量改变次数为任意常数时,此时循环体集合中的循环变量的时间复杂度为;当所述循环体集合中的循环变量改变次数记为不定项时,此时循环体集合中的循环变量的时间复本文档来自技高网...
【技术保护点】
1.一种基于并行化的代码片段提取迭代使用方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述S1包括如下步骤:
3.根据权利要求2所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述S2包括如下步骤:
4.根据权利要求2所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述S21包括如下步骤:
5.根据权利要求2所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述S23包括如下步骤:
6.根据权利要求3所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述S3包括如下步骤:
7.根据权利要求4所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述S4包括如下步骤:
8.根据权利要求4所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,
9.一种实现如权利要求1-8任意一项所述基于并行化的代码片段提取迭代使用方法的系统,其特征在于,具体包括:代码片段热点函数获取模
...【技术特征摘要】
1.一种基于并行化的代码片段提取迭代使用方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述s1包括如下步骤:
3.根据权利要求2所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述s2包括如下步骤:
4.根据权利要求2所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述s21包括如下步骤:
5.根据权利要求2所述的一种基于并行化的代码片段提取迭代使用方法,其特征在于,所述s23包括如下步骤:<...
【专利技术属性】
技术研发人员:季克勤,何明锋,程颖,吴峰,贺燕,马蕾,丁珊,叶宏,瞿迪庆,徐敏,张帅,
申请(专利权)人:金华八达集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。