System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种代码处理方法、装置及相关设备制造方法及图纸_技高网

一种代码处理方法、装置及相关设备制造方法及图纸

技术编号:41146097 阅读:19 留言:0更新日期:2024-04-30 18:14
本申请提供一种代码处理方法、装置及相关设备,包括:计算设备根据计算模式模板集识别源代码中各个代码段的计算模式,对于各个代码段中根据计算模式模板集不能识别出计算模式的待识别代码段,通过逻辑分析识别待识别代码段的计算模式;然后提取各个代码段的模式信息,提取的模式信息包括数据流特征、计算规则特征、控制流特征、存储格式特征或通信操作特征中的任意一种或多种。上述方法在不运行代码的情况下,先通过识别效率高的模板匹配的方式进行识别,能够提高计算模式识别的效率;而对模板匹配不能的代码段,再通过识别准确性高的逻辑分析的方法进行识别,能够提高源代码中识别出计算模式的代码段的数量。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种代码处理方法、装置及相关设备


技术介绍

1、代码优化是指对程序代码进行等价变换,在不改变程序运行结果的前提下对程序代码进行变换,变换后的代码的运行结果与变换前的源代码的运行结果相同,但变换后的代码运行效率更高、计算系统利用率更高或者运行时占用空间更小等。但是当前的代码优化技术,需要在运行源代码的过程中,通过采样的方式收集源代码的性能热点,针对性能热点对程序代码进行优化。通常代码的性能热点是计算模式对应的代码段,因此识别代码的计算模式是对代码进行优化的关键步骤。但是上述运行源代码的过程中通过采样的方法确定性能热点会引入采样的时间开销,对于运行时间较长的应用,还会增加分析和调优的时间成本。因此,如何提高代码中计算模式的识别效率是一个亟待解决的技术问题。


技术实现思路

1、本申请提供一种代码处理方法、装置及相关设备,能够在不运行源代码的情况下识别源代码中包括的计算模式,提高对源代码中计算模式进行识别的效率,进而能够基于识别的计算模式对源代码进行优化。

2、第一方面,本申请提供一种代码处理方法,包括:计算设备获取源代码,根据计算模式模板集识别源代码中各个代码段的计算模式,该计算模式模板集包括根据每种计算模式编写的每种计算模式对应的一系列规则;对于各个代码段中根据计算模式模板集不能识别出计算模式的待识别代码段,计算设备通过逻辑分析识别待识别代码段的计算模式;然后提取各个代码段的模式信息,提取的模式信息包括数据流特征、计算规则特征、控制流特征、存储格式特征或通信操作特征中的任意一种或多种。

3、通过上述计算模式识别方法,能够在不运行源代码的情况下,识别出源代码中多个代码段的计算模式,避免运行源代码带来的时间开销,从而提高对代码中计算模式的识别效率。计算设备在对源代码中多个代码段的计算模式进行识别时,先通过识别效率高的模板匹配的方式进行识别,提高计算模式识别的效率;而对模板匹配不能识别出计算模式的代码段,再通过识别准确性高的逻辑分析的方法进行识别,提高能够识别出计算模式的代码段的数量,从而有利于后续对源代码的处理。例如能够用于对源代码的优化,上述方法能够通过源代码识别出通常为应用热点的计算模式对应的代码段,不需要在编译的过程中对代码进行优化,从而能够提高对代码的调试或调优效率。并且源代码中识别出计算模式的代码量越多,源代码中能够优化的代码量就越多,对源代码进行优化后的效果越好。

4、在一种可能的实现方式中,上述通过逻辑分析识别待识别代码段的计算模式之前,还包括:计算设备输出提示信息,该提示信息用于指示用户根据对第一待识别代码段进行修改,该第一待识别代码段是待识别代码段中的任意一个;计算设备获取用户修改后的第一待识别代码段,并根据计算模式模板集识别用户修改后的第一待识别代码段的计算模式;在根据计算模式模板集没有识别出第一待识别代码段的计算模式的情况下,再通过逻辑分析识别第一待识别代码段的计算模式。

5、在通过计算模式模板集没有识别出一个代码段的计算模式时,可能的原因是该代码段中能够与计算模式模板集中的模板匹配的特征较少,导致计算设备无法确认该代码段的计算模式。计算设备能够输出提示信息,提示用户该代码段不能通过模板匹配的方式进行识别,用户能够对该代码段进行修改,以使计算设备能够提取更多该代码段的特征进行模板匹配。

6、应理解,每种计算模式对应的规则即为该计算模式对应的模板,不同计算模式的模板包括该计算模式的模式信息;在基于计算模式模板集识别第一代码段的计算模式时,计算设备先提取第一代码段的模式信息,将提取的第一代码段的模式信息与计算模式模板集中各种计算模式的模板进行匹配。

7、在一种可能的实现方式中,上述通过逻辑分析识别待识别代码段的计算模式,包括:计算设备对上述待识别代码段中的第一待识别代码段生成一个符合第一计算模式特征的模板,其中,第一计算模式是第一待识别代码段的预测模式;计算设备为上述模板构建针对该模板的待定参数的解空间,解空间的范围内确定待定参数的候选解;当候选解能够表达第一计算模式的语义的情况下,确定第一计算模式是上述第一待识别代码段的计算模式。

8、对模板匹配不能识别出计算模式的代码段,通过识别准确性高的逻辑分析的方法进行识别,能够增加源代码中识别出计算模式的代码段的数量,例如在根据代码段的计算模式对源代码进行优化时,能够增加源代码中能够优化的代码量。

9、在一种可能的实现方式中,上述通过逻辑分析识别待识别代码段的计算模式之前,还包括:计算设备根据计算模式模板集确定上述第一待识别代码段的预测模式。

10、在根据计算模式模板集识别各个代码段的计算模式时,在不能确定一个代码段的计算模式时,能够预测该代码段的计算模式,以便后续通过逻辑分析识别计算模式。

11、在一种可能的实现方式中,上述在提取第一代码段的模式信息之后,该方法还包括:计算设备根据第一代码段的模式信息生成第一代码段的模式层中间表达,该模式层中间表达是根据计算模式设计的一种中间表达;计算设备确定第一代码段的计算模式在模式层对应的优化方法中,能够用于第一代码段的一种或多种第一类候选优化方法,该一种或多种第一类候选优化方法用于在模式层对第一代码段进行优化。

12、计算设备根据识别第一代码段的计算模式的方法识别出源代码中各个代码段的计算模式,并提取各个代码段的模式信息之后,通过设计代码对应的模式层中间表达,能够准确的表达计算模式的模式信息与特征,使计算设备能够确定更多的优化机会和方法,进而对第一代码段进行优化,使得对源代码的优化更加彻底,更好的提高被优化后的代码的性能。

13、在一种可能的实现方式中,计算设备确定第一代码段在模式层对应的第一类候选优化方法之后,上述方法还包括:计算设备根据第一代码段的模式层中间表达生成第一代码段的元素层中间表达,元素层中间表达兼容多级中间表示(multi-level intermediaterepresentation,mlir),且支持矩阵、标量、控制流、仿射变化中的一种或多种;计算设备确定第一代码段的计算模式在模式层对应的优化方法中,能够用于第一代码段的一种或多种第二类候选优化方法,该一种或多种第二类候选优化方法用于在元素层对第一代码段进行优化。

14、在一种可能的实现方式中,计算设备在确定第一代码段在模式层对应的第二类候选优化方法之后,上述方法还包括:计算设备根据第一代码段的元素层中间表达生成第一代码段的硬件层中间表达,该硬件层中间表达兼容用于抽象系统、硬件的高性能数据结构、计算、访存和通信操作;计算设备确定第一代码段的计算模式在硬件层对应的优化方法中,能够用于第一代码段的一种或多种第三类候选优化方法,该一种或多种第三类候选优化方法用于在硬件层对第一代码段进行优化。

15、计算设备在确定第一代码段在模式层的优化方法之后,将第一代码段转换为硬件层中间表达,能够准确的表达不同硬件的关键信息与特征,使计算设备能够确定更多的优化机会和方法,本文档来自技高网...

【技术保护点】

1.一种代码处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述通过逻辑分析识别所述待识别代码段的计算模式之前,还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述通过逻辑分析识别所述待识别代码段的计算模式,包括:

4.根据权利要求3所述的方法,其特征在于,所述通过逻辑分析识别所述待识别代码段的计算模式之前,还包括:根据计算模式模板集确定所述第一待识别代码段的预测模式。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述对所述一种或多种组合优化方法进行评分,包括:

10.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

11.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

12.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

13.一种代码处理装置,其特征在于,包括:

14.根据权利要求13所述的装置,其特征在于,所述分析模块还用于:

15.根据权利要求13或14所述的装置,其特征在于,所述分析模块具体用于:

16.根据权利要求15所述的装置,其特征在于,分析模块还用于根据计算模式模板集确定所述第一待识别代码段的预测模式。

17.根据权利要求13-16所述的装置,其特征在于,所述分析模块还用于:

18.根据权利要求17所述的装置,其特征在于,所述分析模块还用于:

19.根据权利要求18所述的装置,其特征在于,所述分析模块还用于:

20.根据权利要求19所述的装置,其特征在于,所述分析模块还用于:

21.根据权利要求20所述的装置,其特征在于,所述分析模块具体用于:

22.根据权利要求13-16任一项所述的装置,其特征在于,所述分析模块还用于:

23.根据权利要求13-16任一项所述的装置,其特征在于,所述分析模块还用于:

24.根据权利要求13-16任一项所述的装置,其特征在于,

25.一种计算设备,其特征在于,包括处理器和存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,执行如权利要求1至12任一项所述的方法。

26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,所述处理器执行如权利要求1至12任一项所述的方法。

...

【技术特征摘要】

1.一种代码处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述通过逻辑分析识别所述待识别代码段的计算模式之前,还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述通过逻辑分析识别所述待识别代码段的计算模式,包括:

4.根据权利要求3所述的方法,其特征在于,所述通过逻辑分析识别所述待识别代码段的计算模式之前,还包括:根据计算模式模板集确定所述第一待识别代码段的预测模式。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述对所述一种或多种组合优化方法进行评分,包括:

10.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

11.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

12.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:

13.一种代码处理装置,其特征在于,包括:

14.根据权利要求13所述的装置,其特征在于,所述分析模块还用于:

【专利技术属性】
技术研发人员:王龙王哲闫柏成宋昌成刘洪广王正
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1