[发明专利]一种代码检测方法及装置有效

专利信息
申请号: 202010326315.0 申请日: 2020-04-23
公开(公告)号: CN111552638B 公开(公告)日: 2023-08-18
发明(设计)人: 苟亚明;蔡宇 申请(专利权)人: 北京奇艺世纪科技有限公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京银龙知识产权代理有限公司 11243 代理人: 黄灿;顾春天
地址: 100080 北京市海淀区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 代码 检测 方法 装置
【说明书】:

发明实施例提供了一种代码检测方法及装置,代码检测方法包括以下步骤:提取软件模块中包括的源代码;提取所述源代码中的函数;利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以检测所述源代码中的临时变量和执行分支中的一项或多项;标记冗余的临时变量和冗余的执行分支中的一项或多项。这样,本发明实施例通过利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以对源代码中的函数进行检测,从而能够检测出源代码中存在的冗余的临时变量或冗余的执行分支,以便进一步对源代码进行调整,降低了源代码中存在冗余的临时变量或冗余的执行分支的可能性,有助于提高应用程序的使用体验。

技术领域

本发明涉及计算机术领域,特别是涉及一种代码检测方法。

背景技术

应用程序随着功能的不断迭代,会不断增加新的代码,这些代码中可能存在一些没有执行的冗余代码,这些冗余代码在应用程序使用过程中不会被执行。相关技术中通常通过静态扫描的方式对代码进行检测,然而这些冗余代码无法在静态扫描中被检测到,可能导致应用程序中的代码数量增加,影响应用程序的运行性能。

发明内容

本发明实施例的目的在于提供一种代码检测方法及装置,已解决现有扫描方式可能无法检测到冗余代码,导致应用程序中的代码数量增加,影响应用程序的运行性能的问题。具体技术方案如下:

在本发明实施的第一方面,首先提供了一种代码检测方法,包括以下步骤:

提取软件模块中包括的源代码;

提取所述源代码中的函数;

利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以检测所述源代码中的临时变量和执行分支中的一项或多项;

标记冗余的临时变量和冗余的执行分支中的一项或多项。

可选的,所述提取软件模块中包括的源代码之后,还包括:

将所述源代码根据编程语言划分为不同的类型;

获取每一种编程语言的子类函数和基类函数的对应关系作为所述编程语言对应的基类模板。

可选的,所述利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,包括:

标记所述函数中的参数、临时变量和全局变量;

根据参数、所述临时变量和所述全局变量所述利用字符串匹配算法匹配所述函数中的子类函数和所述基类模板对应的基类函数;

根据匹配结果获取所述基类函数的函数声明,所述函数声明中包括对于所述子类函数中的临时变量和执行分支中的一项或多项的检测结果。

可选的,所述将所述源代码根据编程语言的类型划分为不同的类型,包括:

识别所述源代码的文件后缀,并根据所述文件后缀将所述源代码划分至不同的匹配模板;

提取所述源代码中函数的返回值类型、函数名和参数列表,以及函数的属性和协议,以区分同一匹配模板中的源代码对应的编程语言。

可选的,所述利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数之前,包括:

根据预设映射关系建立所述子类函数对应的第一缩写特征表;

基于所述预设映射关系建立基类函数的对应的第二缩写特征表作为所述基类模板。

在本发明实施的第二方面,提供了一种代码检测装置,包括:

第一提取模块,用于提取软件模块中包括的源代码;

第二提取模块,用于提取所述源代码中的函数;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010326315.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top