利索能及
我要发布
收藏
专利号: 2019108470031
申请人: 平安普惠企业管理有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2024-12-18
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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所述的方法,其特征在于,所述系统运行性能包括全局性能和系统降低运行性能,所述根据预设分析策略分析对系统运行性能产生影响的待检测对象,以获取分析值,包括:通过所述判断结果以分析所述待检测对象是否对所述全局性能产生影响,以获取第一分析数据;

以导致所述系统降低运行性能的信息类型对所述待检测对象进行分析,以获得第二分析数据,其中,所述信息类型包括运行速度、运行时间和运行内存;

以导致所述系统降低运行性能的作用域对所述待检测对象进行分析,获得第三分析数据;

以导致所述系统降低运行性能的代码的占比对所述待检测对象进行分析,获得第四分析数据;

以在所述JavaScript代码文本中的操作时间对所述待检测对象进行分析,获得第五分析数据;

以对所述JavaScript代码文本的操作关联度对所述待检测对象进行分析,获得第六分析数据;

根据预设比例,计算所述第一分析数据、所述第二分析数据、所述第三分析数据、所述第四分析数据、所述第五分析数据和所述第六分析数据的加权平均值,以获取分析值。

6.根据权利要求5所述的方法,其特征在于,所述当判断到所述分析值大于第一预设阈值时,将所述分析值大于第一预设阈值的待检测对象作为目标检测对象,获取所述目标检测对象的操作轨迹,包括:计算所述分析值减去第一预设阈值的差值,以所述差值不小于零的待检测对象作为目标检测对象;

分析所述目标检测对象的类型;

若所述目标检测对象的类型为在作用域中进行重复操作的所述DOM操作代码,则分析所述DOM操作代码对应的代码行号、所在的作用域以及被重复操作的次数,获得所述目标检测对象的操作轨迹;

若所述目标检测对象的类型为所述setTimeOut语句,则分析所述setTimeOut语句对应的代码行号、所有所述setTimeOut语句被应用的次数以及相同的所述setTimeOut语句被应用的次数,获得所述目标检测对象的操作轨迹;

若所述目标检测对象的类型为所述局部作用域中引用的函数外部定义的变量,则分析所述局部作用域中引用的函数外部定义的变量对应的代码行号、所述局部作用域中引用的函数外部定义的变量所在的局部作用域、所有所述局部作用域中引用的函数外部定义的变量被引用的次数和相同所述局部作用域中引用的函数外部定义的变量被引用的次数,获得所述目标检测对象的操作轨迹。

7.根据权利要求1所述的方法,其特征在于,所述分析所述目标检测对象导致系统降低性能的运行特性,包括:获取所述目标检测对象的代码类型和所述目标检测对象的关键词;

获取所述目标检测对象在所述JavaScript代码文本中的操作功能;

根据所述代码类型、所述关键词和所述操作功能,获取所述目标检测对象对系统性能产生影响的情况信息;

所述分析所述目标检测对象导致系统降低性能的运行时段,包括:

获取多个JavaScript代码训练文本;

获取所述检测文件的第一特征信息,以及获取所述多个JavaScript代码训练文本的多个第二特征信息,根据所述第一特征信息和多个所述第二特征信息确定预测目标;

将所述检测文件和所述多个JavaScript代码训练文本输入到神经网络模型中;

根据所述第一特征信息和多个所述第二特征信息和所述预测目标,对所述神经网络模型进行训练,以获得预测模型;

将所述目标检测对象和所述情况信息输入到所述预测模型中,通过所述预测模型对所述目标检测对象和所述情况信息进行分析,以获取所述目标检测对象在所述情况信息中降低系统性能的变化情况和运行时段。

8.一种用于处理代码的装置,其特征在于,所述装置包括:

输入输出模块,用于获取检测文件;

处理模块,用于根据所述输入输出模块获取的所述检测文件,调用检索脚本对JavaScript代码文本进行全局检索,获取与所述检测文件存在相同和/或相似内容的代码,将与所述检测文件存在相同和/或相似内容的代码作为待检测对象;当检测到所述待检测对象对系统运行性能产生影响时,根据预设分析策略分析对系统运行性能产生影响的待检测对象,以获取分析值;当判断到所述分析值大于第一预设阈值时,将所述分析值大于第一预设阈值的待检测对象作为目标检测对象,获取所述目标检测对象的操作轨迹,以及获取所述目标检测对象的分析信息;当检测到所述操作轨迹满足预设条件时,根据所述操作轨迹和所述分析信息,分析所述目标检测对象导致系统降低性能的运行特性,以及分析所述目标检测对象导致系统降低性能的运行时段,以获得分析结果,其中,所述预设条件包括所述目标检测对象在所述JavaScript代码文本中导致系统降低性能的操作次数超过限定次数、操作位置在预设作用域中和引用预设变量;根据所述分析结果遍历所述检测文件,获取所述目标检测对象在所述检测文件中对应的可替代方案,根据所述可替代方案生成多个优化方案;从多个所述优化方案中选择一个所述优化方案对所述目标检测对象进行更新,将所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象输入至显示模块,并通过所述显示模块并输出所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象;

所述显示模块,用于显示所述目标检测对象、所述分析结果、对所述目标检测对象进行更新的优化方案和更新后的目标检测对象。

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

至少一个处理器、存储器、显示器和输入输出单元;

其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的程序代码来执行如权利要求1‑7中任一项所述的方法。

10.一种计算机存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1‑7中任一项所述的方法。