【技术实现步骤摘要】
处理代码的方法、装置、设备及存储介质
本申请涉及开发辅助领域,尤其涉及处理代码的方法、装置、设备及存储介质。
技术介绍
随着互联网技术的飞速发展,Web(WorldWideWeb,全球广域网)技术也随之飞速发展,人们对Web技术的功能和性能也提出越来越高的要求,JavaScript语言应运而生。JavaScript语言作为一门专门为制作Web网页而量身定做的简单的编程语言,由于其语言精简和在客户机上执行操作,能大大提高网页的浏览速度和互交能力,因而被广泛使用。在项目开发所使用的JavaScript语言中,普遍会存在降低系统性能的代码,这需要对降低系统性能的代码进行排查和修改。目前的开发管理中,通过检测到影响系统性能的异常信息和异常数据,根据所述异常信息和异常数据获取对应的异常代码,并获取所述异常代码所在行号,将所述异常代码和所述行号生成通知。由于是通过根据影响系统性能的异常信息和异常数据以获取对应的异常代码,其不能获取到存在降低系统性能潜在性的代码,致使所获取影响系统性能的代码不全面,后续还需要开发人员进行人 ...
【技术保护点】
1.一种处理代码的方法,其特征在于,所述方法包括:/n获取检测文件,调用检索脚本对JavaScript代码文本进行全局检索,获取与所述检测文件存在相同和/或相似内容的代码,将与所述检测文件存在相同和/或相似内容的代码作为待检测对象,其中,所述检测文件包括多种存在影响系统性能可能性的代码语句、所述代码语句对系统性能产生影响的操作环境和所述代码语句对应的可替代方案;/n当检测到所述待检测对象对系统运行性能产生影响时,根据预设分析策略分析对系统运行性能产生影响的待检测对象,以获取分析值;/n当判断到所述分析值大于第一预设阈值时,将所述分析值大于第一预设阈值的待检测对象作为目标检测 ...
【技术特征摘要】
1.一种处理代码的方法,其特征在于,所述方法包括:
获取检测文件,调用检索脚本对JavaScript代码文本进行全局检索,获取与所述检测文件存在相同和/或相似内容的代码,将与所述检测文件存在相同和/或相似内容的代码作为待检测对象,其中,所述检测文件包括多种存在影响系统性能可能性的代码语句、所述代码语句对系统性能产生影响的操作环境和所述代码语句对应的可替代方案;
当检测到所述待检测对象对系统运行性能产生影响时,根据预设分析策略分析对系统运行性能产生影响的待检测对象,以获取分析值;
当判断到所述分析值大于第一预设阈值时,将所述分析值大于第一预设阈值的待检测对象作为目标检测对象,获取所述目标检测对象的操作轨迹,以及获取所述目标检测对象的分析信息;
当检测到所述操作轨迹满足预设条件时,根据所述操作轨迹和所述分析信息,分析所述目标检测对象导致系统降低性能的运行特性,以及分析所述目标检测对象导致系统降低性能的运行时段,以获得分析结果,其中,所述预设条件包括所述目标检测对象在所述JavaScript代码文本中导致系统降低性能的操作次数超过限定次数、所述操作轨迹中的操作位置在预设作用域中,以及所述目标检测对象在所述JavaScript代码文本中引用预设变量;
根据所述分析结果遍历所述检测文件,获取所述目标检测对象在所述检测文件中对应的可替代方案,根据所述可替代方案生成多个优化方案;
从多个所述优化方案中选择一个所述优化方案对所述目标检测对象进行更新,并输出所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象。
2.根据权利要求1所述的方法,其特征在于,所述检测文件包括对DOM操作的代码、setTimeout语句和变量,所述获取与所述检测文件存在相同和/或相似内容的代码,将与所述检测文件存在相同和/或相似内容的代码作为待检测对象,包括以下实现方式中的至少一个:
判断所述JavaScript代码文本中是否存在包括关于文档对象模型DOM操作代码的关键字的代码;若判断结果为是,则获取包含所述关键字的代码对应的JavaScript代码文本段内容;通过静态分析工具对所述JavaScript代码文本段内容进行静态分析,获取作用域,其中,所述作用域包括局部作用域和全局作用域;判断所述作用域中是否存在重复的DOM代码;若判断结果为是,则标识所述DOM代码,以获得待检测对象;
或,判断所述JavaScript代码文本中是否存在形式与预设的setTimeout语句的形式相同和/或相似的代码;若判断结果为是,则以形式与预设的setTimeout语句的形式相同和/或相似的代码作为待检测对象;
或,根据变量的命名规则,识别并获取所述JavaScript代码文本中的变量;判断所述变量是否是在函数外部进行定义;若判断结果为是,则获取函数外部定义的变量;根据所述函数外部定义的变量,按照预设的抽象语法树抽象语法树的创建规则创建抽象语法树;通过静态分析工具对所述JavaScript代码文本进行静态分析,获得局部作用域;通过所述抽象语法树分析在所述局部作用域中是否存在所述函数外部定义的变量;若存在,则对在所述局部作用域中被引用的所述函数外部定义的变量进行标记,以获取待检测对象。
3.根据权利要求2所述的方法,其特征在于,所述根据预设分析策略分析对系统运行性能产生影响的待检测对象,以获取分析值之前,所述方法还包括:
根据所述待检测对象,评估所述JavaScript代码文本在系统中运行时的平均响应时间、单个事务的平均响应时间和吞吐量;
根据所述待检测对象,评估所述JavaScript代码文本在系统中运行时的页面加载时间、页面流量和页面性能指数;
分析所述平均响应时间、所述单个事务的平均响应时间、所述吞吐量、所述页面加载时间、所述页面流量和所述页面性能指数,以获取判断结果,其中,所述判断结果包括所述平均响应时间与第二预设阈值的比较值、所述单个事务的平均响应时间与超过第三预设阈值的比较值、所述吞吐量与超过第四预设阈值的比较值、所述页面加载时间与超过第五预设阈值的比较值、所述页面流量与超过第六预设阈值的比较值和所述页面性能指数与超过第七预设阈值的比较值。
4.根据权利要求1所述的方法,其特征在于,所述从多个所述优化方案中选择一个所述优化方案对所述目标检测对象进行更新,并输出所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象,包括:
根据对性能的影响程度,对多个所述优化方案进行评估,获取多个评估值;
比较多个所述评估值,获取所述评估值最大的优化方案;
判断所述评估值最大的优化方案的评估值是否小于预设值,若是,则以接收的用户输入的修改内容作为最终的最优优化方案;
将所述最终的最优优化方案添加在所述检测文件中,以更新所述检测文件;
根据所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象,生成显示文本,以及对所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象进行分析,生成可视化图表;
将所述可视化图表添加至所述显示文本中,输出添加所述可视化图表的显示文本。
5.根据权利要求3所述的方法,其特征在于,所述系统运行性能包括全局性能和系统降低运行性能,所述根据预设分析策略分析对系统运行性能产生影响的待检测对象,以获取分析值,包括:
通过所述判断结果以分析所述待检测对象是否对所述全局性能产...
【专利技术属性】
技术研发人员:陈志城,
申请(专利权)人:平安普惠企业管理有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。