一种代码性能评测方法及装置制造方法及图纸

技术编号:28295312 阅读:32 留言:0更新日期:2021-04-30 16:19
本发明专利技术实施例提供了一种代码性能评测方法及装置,涉及软件开发技术领域。该方法包括:获取第一代码与第二代码的差异信息;基于差异信息生成第一应用程序包和第二应用程序包;第一应用程序包包括第一指令集和差异信息在第一代码中对应的各方法的探针,第二应用程序包包括第二指令集和差异信息在第二代码中对应的各方法的探针;运行第一应用程序包和第二应用程序包,获取第一记录文件和第二记录文件,第一记录文件包括差异信息在第一代码中对应的各方法的调用信息,第二记录文件包括差异信息在第二代码中对应的各方法的调用信息;根据第一记录文件和第二记录文件输出差异信息对应的代码的性能评测结果。本发明专利技术实施例准确的获取差异的代码的性能。

【技术实现步骤摘要】
一种代码性能评测方法及装置
本专利技术涉及软件开发
,尤其涉及一种代码性能评测方法及装置。
技术介绍
目前,软件规模化及复杂程度越来越高,一个软件项目往往需要由多人或者多个开发团队进行开发。多分支开发是一种可以有效提升开发效率的开发模式,多分支开发中,各分支之间互不影响,主线分支(master)是稳定的代码版本,为代码的迭代开发提供稳定可靠的代码基础,开发分支用于进行新功能开发、缺陷(bug)修复等。此外,多分支开发模式中,代码上线或代码发布之前需要将各个开发分支的代码与主线分支进行合并。在优化软件性能的时候,需要对软件代码进行性能评测,以便能及时拦截住劣化代码。对多分支开发模式中的软件代码进行性能评测时,一个主要目的是获取开发分支代码与主线分支代码的差异代码性能评测结果。现有技术中获取差异代码的性能评测结果的方式为:分别获取主线分支代码对应的应用程序包的性能评测结果和开发分支代码对应的应用程序包的性能评测结果,然后将开发分支代码对应的应用程序包的性能评测结果与主线分支代码对应的应用程序包的能评测结果作差,以获取差异代码的性能评测本文档来自技高网...

【技术保护点】
1.一种代码性能评测方法,其特征在于,包括:/n获取第一代码与第二代码的差异信息,所述第二代码为在所述第一代码的基础上进行编辑得到的代码;/n基于所述差异信息生成第一应用程序包和第二应用程序包;所述第一应用程序包包括第一指令集和所述差异信息在所述第一代码中对应的各方法的探针,所述第二应用程序包包括第二指令集和所述差异信息在所述第二代码中对应的各方法的探针,所述第一指令集为编译所述第一代码得到的指令组成的集合,所述第二指令集为编译所述第二代码得到的指令组成的集合,所述探针用于记录方法的调用信息;/n运行所述第一应用程序包和所述第二应用程序包,获取第一记录文件和第二记录文件,所述第一记录文件包括所...

【技术特征摘要】
1.一种代码性能评测方法,其特征在于,包括:
获取第一代码与第二代码的差异信息,所述第二代码为在所述第一代码的基础上进行编辑得到的代码;
基于所述差异信息生成第一应用程序包和第二应用程序包;所述第一应用程序包包括第一指令集和所述差异信息在所述第一代码中对应的各方法的探针,所述第二应用程序包包括第二指令集和所述差异信息在所述第二代码中对应的各方法的探针,所述第一指令集为编译所述第一代码得到的指令组成的集合,所述第二指令集为编译所述第二代码得到的指令组成的集合,所述探针用于记录方法的调用信息;
运行所述第一应用程序包和所述第二应用程序包,获取第一记录文件和第二记录文件,所述第一记录文件包括所述差异信息在所述第一代码中对应的各方法的调用信息,所述第二记录文件包括所述差异信息在所述第二代码中对应的各方法的调用信息;
根据所述第一记录文件和所述第二记录文件输出所述差异信息对应的代码的性能评测结果。


2.根据权利要求1所述的方法,其特征在于,所述基于所述差异信息生成第一应用程序包和第二应用程序包,包括:
对所述第一代码进行编译生成所述第一指令集;
确定所述差异信息对应的各个方法在所述第一指令集中所调用的指令,并对各方法所调用的指令插入探针,生成所述第一应用程序包;
对所述第二代码进行编译生成所述第二指令集;
确定所述第二指令集中所述差异信息对应的各个方法所调用的指令,并对各方法所调用的指令插入探针,生成所述第二应用程序包。


3.根据权利要求2所述的方法,其特征在于,所述对各方法所调用的指令插入探针,包括:
在各方法所调用的第一个指令之前插入第一探针,在各方法所调用的最后一个指令之后插入第二探针;
所述第一探针用于生成对应的方法的第一调用信息,所述第二探针用于生成对应的方法的第二调用信息。


4.根据权利要求3所述的方法,其特征在于,所述第一调用信息包括对应的方法调用其第一个指令的起始时刻,所述第二调用信息包括对应的方法调用其最后一个指令的结束时刻;所述根据所述第一记录文件和所述第二记录文件输出所述差异信息对应的代码的性能评测结果,包括:
根据各方法的第一调用信息和第二调用信息,获取第一时长和第二时长;所述第一时长为所述差异信息在所述第一代码中对应的各方法的总耗时,所述第二时长为所述差异信息在所述第二代码中对应的各方法的总耗时;
根据所述第二时长与所述第一时长的差值输出所述差异信息对应的代码的性能评测结果。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断所述第二时长与所述第一时长的差值是否大于第一阈值时长;
若是,则输出提醒信息,所述提醒信息用于提醒所述差异信息对应的代码的性能不合符预设要求。


6.根据权利要求4所述的方法,其特征在于,所述调用信息还包括:
执行方法所调用的指令的线程的标识、指示调用信息为所述第一调用信息或所述第二调用信息的指示信息以及调用信息所属方法的标识。


7.根据权利要求6所述的方法,其特征在于,所述根据各方法的第一调用信息和第二调用信息,获取第一时长和第二时长,包括:
按照执行各方法所调用的指令的线程,将所述第一记录文件中的调用信息划分为至少一个第一信息组;
根据各第一信息组中的调用信息所属的方法之间的调用层级关系,生成至少一个第一树形结构;
获取各个所述第一树形结构的根节点的耗时之和作为所述第一时长;
按照执...

【专利技术属性】
技术研发人员:彭云涛
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

1