[发明专利]一种代码检测方法及装置有效
申请号: | 202010326315.0 | 申请日: | 2020-04-23 |
公开(公告)号: | CN111552638B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 苟亚明;蔡宇 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 黄灿;顾春天 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 检测 方法 装置 | ||
本发明实施例提供了一种代码检测方法及装置,代码检测方法包括以下步骤:提取软件模块中包括的源代码;提取所述源代码中的函数;利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以检测所述源代码中的临时变量和执行分支中的一项或多项;标记冗余的临时变量和冗余的执行分支中的一项或多项。这样,本发明实施例通过利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以对源代码中的函数进行检测,从而能够检测出源代码中存在的冗余的临时变量或冗余的执行分支,以便进一步对源代码进行调整,降低了源代码中存在冗余的临时变量或冗余的执行分支的可能性,有助于提高应用程序的使用体验。
技术领域
本发明涉及计算机术领域,特别是涉及一种代码检测方法。
背景技术
应用程序随着功能的不断迭代,会不断增加新的代码,这些代码中可能存在一些没有执行的冗余代码,这些冗余代码在应用程序使用过程中不会被执行。相关技术中通常通过静态扫描的方式对代码进行检测,然而这些冗余代码无法在静态扫描中被检测到,可能导致应用程序中的代码数量增加,影响应用程序的运行性能。
发明内容
本发明实施例的目的在于提供一种代码检测方法及装置,已解决现有扫描方式可能无法检测到冗余代码,导致应用程序中的代码数量增加,影响应用程序的运行性能的问题。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种代码检测方法,包括以下步骤:
提取软件模块中包括的源代码;
提取所述源代码中的函数;
利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以检测所述源代码中的临时变量和执行分支中的一项或多项;
标记冗余的临时变量和冗余的执行分支中的一项或多项。
可选的,所述提取软件模块中包括的源代码之后,还包括:
将所述源代码根据编程语言划分为不同的类型;
获取每一种编程语言的子类函数和基类函数的对应关系作为所述编程语言对应的基类模板。
可选的,所述利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,包括:
标记所述函数中的参数、临时变量和全局变量;
根据参数、所述临时变量和所述全局变量所述利用字符串匹配算法匹配所述函数中的子类函数和所述基类模板对应的基类函数;
根据匹配结果获取所述基类函数的函数声明,所述函数声明中包括对于所述子类函数中的临时变量和执行分支中的一项或多项的检测结果。
可选的,所述将所述源代码根据编程语言的类型划分为不同的类型,包括:
识别所述源代码的文件后缀,并根据所述文件后缀将所述源代码划分至不同的匹配模板;
提取所述源代码中函数的返回值类型、函数名和参数列表,以及函数的属性和协议,以区分同一匹配模板中的源代码对应的编程语言。
可选的,所述利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数之前,包括:
根据预设映射关系建立所述子类函数对应的第一缩写特征表;
基于所述预设映射关系建立基类函数的对应的第二缩写特征表作为所述基类模板。
在本发明实施的第二方面,提供了一种代码检测装置,包括:
第一提取模块,用于提取软件模块中包括的源代码;
第二提取模块,用于提取所述源代码中的函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010326315.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种指纹头结构
- 下一篇:一种物联网信息显示方法、计算机设备及存储介质