System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 代码瘦身方法、装置、计算机设备及存储介质制造方法及图纸_技高网

代码瘦身方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:40213274 阅读:5 留言:0更新日期:2024-02-02 22:22
本申请涉及计算机技术领域,公开了代码瘦身方法、装置、计算机设备及存储介质,本申请响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标;根据每一个待清理方法自身的方法坐标,从目标应用程序的设计文件中查询每一个待清理方法对应的代码块;根据每一个待清理方法自身对应的方法坐标以及目标应用程序的设计文件,分析每一个待清理方法对应的调用链;根据所有调用链,确定所有待清理方法中被调用方法的调用位置;删除调用位置处的代码,以及每一个待清理方法对应的代码块,减少目标应用程序的代码量,可以提高应用程序的安装部署编译时间。

【技术实现步骤摘要】

本申请涉及计算机,具体涉及代码瘦身方法、装置、计算机设备及存储介质


技术介绍

1、随着企业业务的更新或增长,企业应用程序的版本会不断更新,功能需求也会不断变动或优化,这会导致在应用程序开发项目中的无效以及冗余代码(以下统称为无效代码)的量越来越大,进而导致应用程序的安装包工程越来越大,安装部署的时间以及程序编译的时间也越来越久。还会导致业务人员熟悉应用程序的代码的时间越来越久。这就要求删除无效代码以及冗余代码,以克服上述缺陷。


技术实现思路

1、有鉴于此,本申请提供了一种代码瘦身方法、装置、计算机设备及存储介质,以解决应用程序开发项目中未删除无效以及冗余代码所导致的应用程序安装部署编译时间长以及业务人员熟悉应用程序的代码的时间久的问题。

2、第一方面,本申请提供了一种代码瘦身方法,所述方法包括:

3、响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标,目标未运行方法集合为目标应用程序在目标运行环境下预设时间段内未执行的方法组成的集合,待清理方法为未运行方法集合中被选中的未运行方法;

4、根据每一个待清理方法自身的方法坐标,从目标应用程序的设计文件中查询每一个待清理方法对应的代码块;

5、根据每一个待清理方法自身对应的方法坐标以及目标应用程序的设计文件,分析每一个待清理方法对应的调用链;

6、根据所有调用链,确定所有待清理方法中被调用方法的调用位置;

7、删除调用位置处的代码,以及每一个待清理方法对应的代码块。

8、具体的,将目标应用程序在目标运行环境下预设时间段内未执行的方法组成的集合确定为目标未运行方法集合,这意味着从为运行方法集合中选择的每一个待清理方法对应的代码块都是不影响业务服务的无效代码,可以直接将待清理方法对应的代码块删除,很大程度上避免对目标应用程序的代码的误删除。在删除待清理方法对应的代码块的同时还会根据分析得到的所有待清理方法的调用链,确定所有待清理方法中被调用的方法的调用位置,并删除调用位置处的代码,避免将无效代码删除后其它方法调用出错的情况,以确保无效代码的彻底删除。从而完成对应目标应用程序在目标运行环境下的无效代码的删除,大大减少目标应用程序的代码量,大大降低业务人员对目标应用程序的代码的熟悉时间,提高目标应用程序后续在目标运行环境或其他运行环境下的安装部署编译时间。此外,具体删除的无效代码是目标未运行方法集合中被选中方法对应的代码,显然对于没有选中的方法则不进行删除,在自动删除无效代码的同时还给予用户操作选择的空间,以选择真正需要删除的无效代码大大提高了无效代码清理的准确性。

9、在一些可选的实施例中,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标之前,所述方法还包括:

10、接收目标应用程序的应用标识、目标运行环境的环境等级以及目标任务执行周期的序号;

11、根据应用标识以及环境等级,从预获取的全量方法总集中查询目标程序在目标环境下的全量方法集合,全量方法总集包括至少一个应用程序的设计文件中的所有方法,目标应用程序为至少一个应用程序中的任一个,全量方法集合包括目标应用程序在目标运行环境下的所有方法;

12、根据应用标识、环境等级以及目标任务执行周期的序号,从预获取的已运行方法总集中查询目标程序在目标环境下的已运行方法集合,已运行方法总集包括至少一个应用程序运行至少一次后所执行的方法,已运行方法集合包括目标应用程序在目标运行环境下的目标任务执行周期内所执行的方法;

13、根据全量方法集合中每一个方法的方法坐标,以及已运行方法集合中每一个方法的方法坐标,确定全量方法集合与已运行方法集合之间的差集;

14、将差集确定为目标未运行方法集合。

15、具体的,在获取目标未运行方法集合中待清理方法的方法坐标之前,从应用、环境以及任务执行周期的维度,通过简单的查询操作就可以从预获取的包括所有应用程序的设计文件中所有方法的全量方法总集和包括已运行的应用程序所执行的所有方法的已运行方法总集中自动查找目标应用程序在其所处运行环境下的全量方法集合和已运行方法集合,以得到目标应用程序在其所处运行环境下的所有方法,和至少一个任务执行周期内所执行的方法,这样两个集合的差集就是目标应用程序在运行了至少一次后所暴露的没有执行过的方法的集合,将这个差集确定为目标未运行方法集合,完成了对未运行方法的自动判定。无需通过人工分析代码来确定目标应用程序执行时未运行方法,大大提高未运行方法的确定效率。而且目标未运行方法集合中包括的未运行方法是针对目标应用程序在目标运行环境下运行一次甚至多次后所有执行的方法总和(也即已运行方法总集),以及全量方法总集来确定的,这就意味着当目标应用程序运行的次数越多目标运行方法集合就越能暴露目标应用程序实际未执行的运行方法,可以很大程度上保证目标运行方法集合的可靠性与准确性。

16、在一些可选的实施例中,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标之前,所述方法还包括:

17、根据预存储的每一个应用程序的设计文件,获取全量方法总集;

18、在每一种运行环境下,利用预装载的方法采集代理,根据预获取的每一个所述应用程序运行时的进程标识,确定每一个所述应用程序在不同运行环境下对应的已运行方法集合;

19、将所有应用程序对应的已运行方法集合确定为已运行方法总集,以便于后续根据全量方法总集以及已运行方法总集获取目标未运行方法集合。

20、具体的,基于每一个应用程序的设计文件得到的全量方法总集可以覆盖所有应用程序对应的所有方法,从而保证全量方法总集中方法的全面性避免遗漏。在每一种运行环境下,从进程标识的维度利用预装载的方法采集代理确定每一次应用程序其所处运行环境下运行时所有可能的已运行方法,保证应用程序在不同运行环境下对应的已运行方法集合中是汇聚了应用程序运行后所有可能执行过的方法,保证了已运行方法的数据量进而保证后续目标未运行方法集合的可靠性与准确性。

21、在一些可选的实施例中,根据预存储的每一个应用程序的设计文件,获取全量方法总集,包括:

22、在每一种运行环境下,利用预构建的调用链分析接口对每一个应用程序的设计文件进行代码分析操作,得到每一个应用程序的设计文件在每一种运行环境下的方法坐标集合;

23、将所有应用程序的设计文件在所有运行环境下的方法坐标集合,确定为全量方法总集。

24、具体的,在每一种运行环境下,利用预构建的调用链分析接口可以对每一个应用程序的设计文件进行准确的代码分析操作,这样就可以准确地分析出设计文件在该运行环境下所涉及的所有方法,进而高效准确地得到全量方法总集。而且可以避免使用二次开发难度高的ide(integrated development environment,集成开发环境)本文档来自技高网...

【技术保护点】

1.一种代码瘦身方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标之前,所述方法还包括:

3.根据权利要求1或2所述的方法,其特征在于,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标之前,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述根据预存储的每一个应用程序的设计文件,获取全量方法总集,包括:

5.根据权利要求3所述的方法,其特征在于,所述在每一种运行环境下,利用预装载的方法采集代理,根据预获取的每一个所述应用程序运行时的进程标识,确定每一个所述应用程序在不同运行环境下对应的已运行方法集合,包括:

6.根据权利要求1至2以及4至5任一项所述的方法,其特征在于,在删除所述调用位置处的代码,以及每一个所述待清理方法对应的代码块之前,所述方法还包括:

7.根据权利要求3所述的方法,其特征在于,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个所述待清理方法的方法坐标之前,所述方法还包括:

8.一种代码瘦身装置,其特征在于,所述装置包括:

9.一种计算机设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的代码瘦身方法。

...

【技术特征摘要】

1.一种代码瘦身方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标之前,所述方法还包括:

3.根据权利要求1或2所述的方法,其特征在于,在响应于对目标未运行方法集合中至少一个未运行方法的选择操作,获取每一个待清理方法的方法坐标之前,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述根据预存储的每一个应用程序的设计文件,获取全量方法总集,包括:

5.根据权利要求3所述的方法,其特征在于,所述在每一种运行环境下,利用预装载的方法采集代理,根据预获取的每一个所述应用程序运行时的进程标识,确定每一个...

【专利技术属性】
技术研发人员:侯冰玲黄成熊超应阔浩郭苏扬
申请(专利权)人:北京自如信息科技有限公司
类型:发明
国别省市:

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

1