一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种后端代码优化方法及系统与流程

2022-06-05 07:41:47 来源:中国专利 TAG:


1.本发明涉及代码优化技术领域,尤其涉及一种后端代码优化方法及系统。


背景技术:

2.代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换,程序代码可以是中间代码,也可以是目标代码,在不改变程序运行效果的前提下,对被编译的程序进行等价变换,使之能生成更加高效的目标代码。
3.但是目前的后端代码优化工具只能在一定业务场景下进行代码优化,当代码的数据量过多时,优化效率会显著降低,并且无法优化代码库查询效率。


技术实现要素:

4.针对现有技术中存在的问题,本发明提供一种后端代码优化方法,具体包括以下步骤:
5.步骤s1,获取一原代码库,并判断所述原代码库是否为首次优化:
6.若是,则提取出所述原代码库中的所有代码作为待优化代码,随后转向步骤s3;
7.若否,转向步骤s2;
8.步骤s2,持续监测所述原代码库,并判断所述原代码库是否存在代码更新;
9.若是,则提取出更新部分的代码作为所述待优化代码,随后转向步骤s3;
10.若否,则返回所述步骤s2;
11.步骤s3,判断所述待优化代码和所述原代码库中的其他代码中是否存在至少两个代码使用同一种方法类语句:
12.若是,转向步骤s4;
13.若否,返回所述步骤s2;
14.步骤s4,对使用同一种所述方法类语句的各所述代码两两之间分别建立一个映射并根据对应同一种所述方法类语句的所述映射的次数提取对应的所述方法类语句生成一优化代码库,以及将所述优化代码库作为所述原代码库随后返回所述步骤s2。步骤s1,获取一原代码库,并判断所述原代码库是否为首次优化:
15.若是,则提取出所述原代码库中的所有代码作为待优化代码,随后转向步骤s2;
16.若否,转向步骤s2;
17.步骤s2,持续监测所述原代码库,并判断所述原代码库是否存在代码更新;
18.若是,则提取出更新部分的代码作为所述待优化代码,随后转向步骤s3;
19.若否,则返回所述步骤s2;
20.步骤s3,判断所述待优化代码和所述原代码库中的其他代码中是否存在至少两个代码使用同一种方法类语句:
21.若是,转向步骤s4;
22.若否,返回所述步骤s2;
23.步骤s4,对使用同一种所述方法类语句的各所述代码两两之间分别建立一个映射并根据对应同一种所述方法类语句的所述映射的次数提取对应的所述方法类语句形成一优化代码库,以及将所述优化代码库作为所述原代码库随后返回所述步骤s2。
24.优选的,所述步骤s4包括:
25.步骤s41,针对使用同一种所述方法类语句的各所述代码,两两之间建立一个所述映射并统计所述映射的次数作为对应的所述方法类语句的使用频率;
26.步骤s42,判断所述使用频率是否大于预设的第一阈值:
27.若是,转向步骤s43;
28.若否,返回所述步骤s2;
29.步骤s43,提取对应的所述方法类语句生成所述优化代码库作为所述原代码库。
30.优选的,两两之间建立所述映射的各所述代码为所述原数据库的更新部分的代码时,则所述步骤s42中,判断所述使用频率不大于所述第一阈值后,还包括:
31.删除所述使用频率对应的所述代码,随后返回所述步骤s2。
32.优选的,所述第一阈值为2。
33.优选的,所述步骤s4中,提取对应的所述方法类语句作为一个组件之后还包括一深度优化过程,所述深度优化过程具体包括以下步骤:
34.步骤a1,针对每个所述待优化代码,运行所述待优化代码并统计所述待优化代码对应的一代码运行时间;
35.步骤a2,判断所述代码运行时间是否大于预设的一第二阈值:
36.若是,转向步骤a3;
37.若否,返回所述步骤a1;
38.步骤a3,对所述待优化代码进行深度优化至所述代码运行时间不大于所述第二阈值。
39.优选的,所述步骤a3包括:
40.步骤a31,将所述待优化代码转换为一原生结构化查询语言并根据所述原生结构化查询语言生成一数据库索引;
41.步骤a32,根据所述数据库索引于所述原代码库中查询到对应的所述待优化代码,并采用对应的所述原生结构化查询语言替换所述待优化代码以使所述代码运行时间不大于所述第二阈值。
42.优选的,所述第二阈值为200ms。
43.优选的,提供一信号接口,则所述步骤s2中,判断所述原代码库存在代码更新之后还包括:
44.判断所述信号接口是否接收到一手动优化指令:
45.若是,根据所述手动优化指令对所述待优化指令进行手动优化,随后返回所述步骤s2;
46.若否,转向所述步骤s3。
47.优选的,一种后端代码优化系统,应用于上述后端代码优化方法,包括:
48.一代码获取模块,用于获取一原代码库,并在接收到外部输入的一首次优化指令时,提取出所述原代码库中的所有代码作为待优化代码;
49.一代码监测模块,连接所述代码获取模块,用于持续监测所述原代码库,并在接收到外部输入的一代码更新指令时,提取出更新部分的代码作为所述待优化代码;
50.一代码优化模块,分别连接所述代码获取模块和所述代码监测模块,用于在所述待优化代码和所述原代码库中的其他代码中存在至少两个代码使用同一种方法类语句时,对使用同一种所述方法类语句的各所述代码两两之间分别建立一个映射并根据对应同一种所述方法类语句的所述映射的次数提取对应的所述方法类语句生成一优化代码库作为所述原代码库;以及
51.在所有所述代码均未使用同一种方法类语句时,持续监测所述原代码库。
52.优选的,所述代码优化模块包括:
53.一频率统计单元,用于在所述待优化代码和所述原代码库中的其他代码中存在至少两个代码使用同一种方法类语句时,针对使用同一种所述方法类语句的各所述代码,两两之间建立一个所述映射并统计所述映射的次数作为对应的所述方法类语句的使用频率;以及
54.在所有所述代码均未使用同一种方法类语句时,持续监测所述原代码库;
55.一组件创建单元,连接所述频率统计单元,用于提取对应的所述方法类语句生成所述优化代码库作为所述原代码库。
56.上述技术方案具有如下优点或有益效果:本发明中的后端代码优化方法及系统能够识别原代码库是否首次优化,并根据待优化代码使用的方法类语句和方法类语句的使用频率对待优化代码进行优化,并通过深度优化降低代码运行时间,提高原代码库的查询效率。
附图说明
57.图1为本发明的较佳的实施例中,本方法的步骤流程图;
58.图2为本发明的较佳的实施例中,步骤s4的具体流程图;
59.图3为本发明的较佳的实施例中,深度优化过程的步骤流程图;
60.图4为本发明的较佳的实施例中,步骤a3的具体流程图;
61.图5为本发明的较佳的实施例中,本系统的结构原理图。
具体实施方式
62.下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
63.本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种后端代码优化方法,如图1所示,包括:
64.步骤s1,获取一原代码库,并判断原代码库是否为首次优化:
65.若是,则提取出原代码库中的所有代码作为待优化代码,随后转向步骤s3;
66.若否,转向步骤s2;
67.步骤s2,持续监测原代码库,并判断原代码库是否存在代码更新;
68.若是,则提取出更新部分的代码作为待优化代码,随后转向步骤s3;
69.若否,则返回步骤s2;
70.步骤s3,判断待优化代码和原代码库中的其他代码中是否存在至少两个代码使用同一种方法类语句:
71.若是,转向步骤s4;
72.若否,返回步骤s2;
73.步骤s4,对使用同一种方法类语句的各代码两两之间分别建立一个映射并根据对应同一种方法类语句的映射的次数提取对应的方法类语句生成一优化代码库,以及将优化代码库作为原代码库随后返回步骤s2。
74.具体地,本实施例中,本方法能够对原代码库中的所有代码进行检测优化,一旦存在代码更新,则通过后台监听更新部分内容并自动进行优化。
75.具体地,本实施例中,当原代码库未进行优化时,步骤s3中的待优化代码为原代码库中的所有代码,则原代码库中的其他代码为空集,只对原代码中的所有代码进行优化,此时对应原代码库的首次优化。
76.优选的,当原代码库优化完成时,步骤s3中的待优化代码为更新部分的代码,则原代码库中的其他代码为原代码库中首次优化完成的代码,此时是对更新部分的代码和原代码库中首次优化完成的代码进行优化。
77.优选的,具体优化时,可以将更新部分的代码和原代码库中首次优化完成的代码合并为待优化代码在进行统一优化,也可以将更新部分的代码分别和原代码库中首次优化完成的代码建立映射进行优化。
78.具体地,本实施例中,当代码a和代码b使用了同一种方法类语句时,则代码a和代码b之间建立一个映射,代码a和代码b的使用频率则为1。
79.优选的,使用了同一种方法类语句的代码的数量并不限定于两个。
80.本发明的较佳的实施例中,如图2所示,步骤s4包括:
81.步骤s41,针对使用同一种方法类语句的各代码,两两之间建立一个映射并统计映射的次数作为对应的方法类语句的使用频率;
82.步骤s42,判断使用频率是否大于预设的第一阈值:
83.若是,转向步骤s43;
84.若否,返回步骤s2;
85.步骤s43,提取对应的方法类语句生成优化代码库作为原代码库。
86.本发明的较佳的实施例中,两两之间建立映射的各代码为原数据库的更新部分的代码时,则步骤s42中,判断使用频率不大于第一阈值后,还包括:
87.删除使用频率对应的代码,随后返回步骤s2。
88.本发明的较佳的实施例中,第一阈值为2。
89.本发明的较佳的实施例中,步骤s4中,提取对应的方法类语句作为一个组件之后还包括一深度优化过程,深度优化过程如图3所示,具体包括以下步骤:
90.步骤a1,针对每个待优化代码,运行待优化代码并统计待优化代码对应的一代码运行时间;
91.步骤a2,判断代码运行时间是否大于预设的一第二阈值:
92.若是,转向步骤a3;
93.若否,返回步骤a1;
94.步骤a3,对待优化代码进行深度优化至代码运行时间不大于第二阈值。
95.本发明的较佳的实施例中,如图4所示,步骤a3包括:
96.步骤a31,将待优化代码转换为一原生结构化查询语言并根据原生结构化查询语言生成一数据库索引;
97.步骤a32,根据数据库索引于原代码库中查询到对应的待优化代码,并采用对应的原生结构化查询语言替换待优化代码以使代码运行时间不大于第二阈值。
98.本发明的较佳的实施例中,第二阈值为200ms。
99.本发明的较佳的实施例中,提供一信号接口,则步骤s2中,判断原代码库存在代码更新之后还包括:
100.判断信号接口是否接收到一手动优化指令:
101.若是,根据手动优化指令对待优化指令进行手动优化,随后返回步骤s2;
102.若否,转向步骤s3。
103.本发明的较佳的实施例中,一种后端代码优化系统,应用于上述后端代码优化方法,如图5所示,包括:
104.一代码获取模块1,用于获取一原代码库,并在接收到外部输入的一首次优化指令时,提取出原代码库中的所有代码作为待优化代码;
105.一代码监测模块2,连接代码获取模块1,用于持续监测原代码库,并在接收到外部输入的一代码更新指令时,提取出更新部分的代码作为待优化代码;
106.一代码优化模块3,分别连接代码获取模块1和代码监测模块2,用于在待优化代码和原代码库中的其他代码中存在至少两个代码使用同一种方法类语句时,对使用同一种方法类语句的各代码两两之间分别建立一个映射并根据对应同一种方法类语句的映射的次数提取对应的方法类语句生成一优化代码库作为原代码库;以及
107.在所有代码均未使用同一种方法类语句时,持续监测原代码库。
108.本发明的较佳的实施例中,代码优化模块3包括:
109.一频率统计单元31,用于在待优化代码和原代码库中的其他代码中存在至少两个代码使用同一种方法类语句时,针对使用同一种方法类语句的各代码,两两之间建立一个映射并统计映射的次数作为对应的方法类语句的使用频率;以及
110.在所有代码均未使用同一种方法类语句时,持续监测原代码库;
111.一组件创建单元32,连接频率统计单元31,用于提取对应的方法类语句生成优化代码库作为原代码库。
112.具体地,本实施例中,本系统以以客户端的方式运行,则在原代码库进行首次优化时,需要将所有代码进行导入,首次优化后的代码自动保存至指定路径并且自动运行和监测代码运行时间,一旦代码运行时间超过第一阈值则自动优化;第二次及以后,代码一旦有更新,则自动运行优化。
113.优选的,在客户端的界面上可以展示代码输入类型、代码输出位置、运行完成后的弹框显示运行效果、优化方法以及文件名。
114.具体地,本实施例中,本系统能够优化查询原代码库的效率,自动将代码转化为原生结构化查询语言,并自动创建数据库索引或者联合索引,将原生结构化查询语言替换原代码,使得原代码库的代码查询效率提高。
115.以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献