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

控制方法、装置及电子设备与流程

2022-02-20 00:41:18 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种控制方法、装置及电子设备。


背景技术:

2.低代码平台的应用在运行时因此内存回收gc(garbage collection),存在较长时间的停顿,对低代码平台的应用的使用体验造成很大影响。因此,有必要对内存回收机制进行调整。
3.目前,通常由经验丰富的运维人员对内存回收机制进行设置。


技术实现要素:

4.有鉴于此,本技术提供一种控制方法、装置及电子设备,如下:
5.一种控制方法,包括:
6.获得目标应用的应用参数,所述应用参数表征所述目标应用执行内存回收的类型;
7.获得所述应用参数对应的内存回收策略;所述应用参数对应的内存回收策略至少基于所述应用参数对应的样本应用数据得到,所述样本应用数据至少包含内存状态数据和执行内存回收的特征数据;
8.控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收。
9.上述方法,优选的,所述内存回收策略至少包含执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型。
10.上述方法,优选的,所述应用参数对应的内存回收策略通过以下方式获得:
11.按照线性回归算法,对所述样本应用数据中的内存状态数据和执行内存回收的特征数据进行分析,以得到内存回收策略;所述内存回收策略使得执行内存回收的持续时长和/或回收的内存空间满足控制条件。
12.上述方法,优选的,按照线性回归算法,对所述样本应用数据中的内存状态数据和执行内存回收的特征数据进行分析,以得到内存回收策略,包括:
13.按照线性回归算法,构建内存回收特征模型,所述内存回收特征模型表征内存状态数据与特征数据之间的对应关系;
14.基于所述控制条件,使用所述样本应用数据中的内存状态数据和执行内存回收的特征数据,对所述内存回收特征模型进行训练,训练得到的内存回收特征模型所包含的内存回收策略使得执行内存回收的持续时长和/或回收的内存空间满足所述控制条件。
15.上述方法,优选的,所述控制条件包含:所述持续时长小于或等于时长阈值,和/或,所述回收的内存空间大于或等于回收阈值。
16.上述方法,优选的,控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收,包括:
17.按照所述内存回收策略中执行内存回收对应的内存状态数据和执行内存回收的
内存回收算法的类型,设置所述目标应用执行内存回收的执行参数,以使得所述目标应用按照所述执行参数执行内存回收。
18.上述方法,优选的,在控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收之前,所述方法还包括:
19.接收修改操作,所述修改操作中包含针对所述内存回收策略的修改参数;
20.按照所述修改参数,对所述内存回收策略进行调整。
21.上述方法,优选的,在控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收之前,所述方法还包括:
22.控制所述目标应用在测试过程中按照所述内存回收策略执行内存回收,以得到所述内存回收策略的测试结果;所述测试结果表征所述内存回收策略是否满足控制条件;
23.如果所述测试结果表征所述内存回收策略满足所述控制条件,执行所述:控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收的步骤;
24.如果所述测试结果表征所述内存回收策略不满足所述控制条件,重新执行所述:获得所述应用参数对应的内存回收策略的步骤。
25.一种控制装置,包括:
26.参数获得单元,用于获得目标应用的应用参数,所述应用参数表征所述目标应用执行内存回收的类型;
27.策略获得单元,用于获得所述应用参数对应的内存回收策略;所述应用参数对应的内存回收策略至少基于所述应用参数对应的样本应用数据得到,所述样本应用数据至少包含内存状态数据和执行内存回收的特征数据;
28.回收控制单元,用于控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收。
29.一种电子设备,包括:
30.存储器,用于存储计算机程序以及所述计算机程序运行所产生的数据;
31.处理器,用于执行所述计算机程序,以实现:获得目标应用的应用参数,所述应用参数表征所述目标应用执行内存回收的类型;获得所述应用参数对应的内存回收策略;所述应用参数对应的内存回收策略至少基于所述应用参数对应的样本应用数据得到,所述样本应用数据至少包含内存状态数据和执行内存回收的特征数据;控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收。
32.从上述技术方案可以看出,本技术公开的一种控制方法、装置及电子设备中,通过对目标应用的应用参数对应的样本应用数据进行学习,进而得到应用参数对应的内存回收策略,基于此,控制目标应用按照该内存回收策略执行内存回收。可见,本技术中通过对样本应用数据中的内存状态数据和执行内存回收的特征数据进行学习,以得到能够控制目标应用执行内存回收的内存回收策略,而无需由运维人员对内存回收的机制进行手动设置,从而提高内存回收策略的设置效率。
附图说明
33.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本
领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本技术实施例一提供的一种控制方法的流程图;
35.图2为电子设备中内存堆结构的示意图;
36.图3为本技术实施例一提供的一种控制方法的部分流程图;
37.图4-图6分别为本技术实施例一提供的一种控制方法的另一流程图;
38.图7为本技术实施例二提供的一种控制装置的结构示意图;
39.图8-图10分别为本技术实施例二提供的一种控制装置的另一结构示意图;
40.图11为本技术实施例三提供的一种电子设备的结构示意图;
41.图12为本技术适用于低代码平台的应用开发的示例流程图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.参考图1所示,为本技术实施例一提供的一种控制方法的实现流程图,该方法可以适用于能够运行应用程序的电子设备中,该电子设备可以为手机、pad、计算机或服务器等设备。这里的应用程序为运行过程中通过占用电子设备内存以实现相应的数据处理功能的程序,如聊天应用程序或购物应用程序等。本实施例中的技术方案主要用于提高应用程序运行过程中所使用的内存回收策略的设置效率。
44.具体的,本实施例中的方法可以包含如下步骤:
45.步骤101:获得目标应用的应用参数。
46.其中,应用参数为表征目标应用执行内存回收的类型的参数。例如,应用参数包含有算法类型参数和应用类型参数。算法类型参数表征目标应用执行内存回收所使用的内存回收算法,如minor gc或full gc等算法。应用类型参数表征目标应用的应用类型,具体为目标应用所实现的应用功能的类型,如电商类型的应用或聊天类型的应用等。
47.步骤102:获得应用参数对应的内存回收策略。
48.其中,应用参数对应的内存回收策略至少基于应用参数对应的样本应用数据得到,也就是说,步骤102中至少基于应用参数对应的样本应用数据获得应用参数对应的内存回收策略。这里的样本应用数据中至少包含有内存状态数据和执行内存回收的特征数据。
49.具体的,样本应用数据可以为对目标应用进行测试过程中目标应用所产生的历史应用数据。例如,本实施例中对目标应用在出厂前的压测过程中所产生的应用数据进行采集以及记录,记录得到的样本应用数据可以记录在电子设备中与目标应用对应的应用日志文件中。由此,本实施例对记录得到的样本应用数据进行读取。
50.而样本应用数据中的内存状态数据可以包含有多种表征内存状态的数据,如参与内存回收的新生代内存的最大值、参与内存回收的老年代内存的最大值、堆外内存最大值、栈的大小、线程最大值和线程最小值等等中的任意一项或任意多项。例如,如图2中的内存堆结构所示,eden为内存中存放被创建的对象的区域,s0和s1为新生代内存的区域,
tenured为老年代内存的区域。堆外内存最大值是指电子设备中运行目标应用的虚拟机中除参与内存回收的堆的内存之外的内存的最大值。栈的大小是指电子设备中运行目标应用的虚拟机所构建的栈的大小。线程最大值和最小值是指电子设备中运行目标应用的虚拟机中所运行的线程的最大值和最小值。
51.另外,样本应用数据中的特征数据是指目标应用在测试过程中执行内存回收的执行特征数据,例如,特征数据至少可以包含有如下几种:执行内存回收对应的内存状态数据、执行内存回收的持续时长、执行内存回收所回收到的内存空间、执行内存回收的内存回收算法的类型。
52.其中,特征数据中执行内存回收对应的内存状态数据是指:目标应用在测试过程中,每次执行内存回收的动作时所对应的实时内存状态数据,例如,特征数据包含:目标应用在测试过程中执行每次内存回收的动作时的实时的新生代内存的最大值、老年代内存的最大值、堆外内存最大值、栈的大小、线程最大值和线程最小值等数据。
53.特征数据中执行内存回收的持续时长是指:目标应用在测试过程中,每次执行内存回收的动作时,从执行内存回收的动作开始到执行内存回收的动作结束所持续的时长。例如,目标应用在某个时刻上执行内存回收时持续20毫秒的时长。
54.特征数据中执行内存回收所回收到的内存空间是指:目标应用在测试过程中,每次执行内存回收所会回收到的内存空间的大小。例如,目标应用在某个时刻上执行内存回收时回收到2m的内存空间。
55.特征数据中执行内存回收的内存回收算法的类型是指:目标应用在测试过程中,执行内存回收所使用的内存回收算法的类型。如针对新生代内存的复制算法或针对老年代内存的标记压缩算法等。
56.基于此,本实施例中可以通过对样本应用数据进行样本学习,以得到内存回收策略。需要说明的是,不同的应用参数对应于不同的样本应用数据,基于此,本实施例中可以针对具有不同应用参数的目标应用,均可以通过对相应的样本应用数据进行学习,进而得到不同应用参数的目标应用的内存回收策略。
57.步骤103:控制目标应用在运行过程中按照内存回收策略执行内存回收。
58.其中,内存回收策略中包含有能够指示目标应用执行回收的指示参数,进而可以根据这些指示参数可以指示目标应用按照内存回收策略执行内存回收。
59.具体的,本实施例中可以将内存回收策略发送给目标应用,以使得目标应用按照接收到的内存回收策略执行内存回收;或者,本实施例中可以按照内存回收策略调整目标应用中与执行内存回收相关的参数,进而使得目标应用按照调整后的参数执行内存回收。
60.从上述技术方案可以看出,本技术实施例一提供的一种控制方法中,通过对目标应用的应用参数对应的样本应用数据进行学习,进而得到应用参数对应的内存回收策略,基于此,控制目标应用按照该内存回收策略执行内存回收。可见,本实施例中通过对样本应用数据中的内存状态数据和执行内存回收的特征数据进行学习,以得到能够控制目标应用执行内存回收的内存回收策略,而无需由运维人员对内存回收的机制进行手动设置,从而提高内存回收策略的设置效率。
61.在一种实现方式中,步骤102中所获得的内存回收策略中可以至少包含有执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型。
62.其中,内存回收策略中的内存状态数据中可以包含有参与内存回收的新生代内存的最大值、参与内存回收的老年代内存的最大值、堆外内存最大值、栈的大小、线程最大值和线程最小值等等中的任意一项或任意多项。具体的,内存回收策略中的内存状态数据是指:在电子设备中运行目标应用的过程中,如果检测到当前的内存状态数据与内存回收策略中的内存状态数据相一致,那么目标应用执行一次内存回收。也就是说,内存回收策略中的内存状态数据用于在电子设备中的内存状态数据与内存回收策略中的内存状态数据相一致时,触发目标应用执行内存回收。
63.而内存回收策略中的内存回收算法的类型用于指示目标应用按照该算法执行内存回收。也就是说或,在目标应用执行内存回收时按照内存回收策略中的内存回收算法执行内存回收。例如,目标应用对新生代内存按照复制算法执行内存回收,对老年代按照标记压缩算法执行内存回收。
64.基于以上实现,步骤103中在控制目标应用在运行过程中按照内存回收策略执行内存回收时,具体可以通过以下方式实现:
65.按照内存回收策略中执行内存回收对应的内存状态数据执行内存回收的内存回收算法的类型,设置目标应用执行内存回收的执行参数,以使得目标应用按照执行参数执行内存回收。
66.这里的执行参数可以包含有:目标应用执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型。
67.也就是说,本实施例中按照内存回收策略中的内存状态数据和内存回收算法的类型,设置目标应用中执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型等执行参数,由此,在目标应用运行过程中,目标应用按照这些执行参数执行内存回收,例如,在电子设备的内存状态数据与执行参数中的内存状态数据相一致时,目标应用执行一次内存回收,而目标应用在执行内存回收时按照执行参数中的内存回收算法的类型执行内存回收。
68.在一种实现方式中,步骤102中应用参数对应的内存回收策略可以通过以下方式获得:
69.按照线性回归算法,对样本应用数据中的内存状态数据和执行内存回收的特征数据进行分析,以得到内存回收策略。
70.这里的内存回收策略使得执行内存回收的持续时长和/或回收的内存空间满足控制条件。也就是说,本实施例中通过对样本应用数据中的内存状态数据和执行内存回收的特征数据按照线性回归的方式进行学习,进而得到满足控制条件的内存回收策略。
71.这里的控制条件可以为:执行内存回收的持续时长小于或等于时长阈值,和/或,执行内存回收所回收到的内存空间大于或等于回收阈值。
72.也就是说,本实施例中通过对样本应用数据中的内存状态数据和执行内存回收的特征数据按照线性回归的方式进行学习优化,进而学习到执行内存回收的持续时长较短和/或执行内存回收所回收到的内存空间较大的内存回收策略,而执行内存回收的持续时长越短,目标应用运行过程中所产生的卡顿的时长也越短,而执行内存回收所回收到的内存空间越大,目标应用运行过程中所能够使用的内存空间也越多,因此,本实施例中在实现自动获得内存回收策略的同时,能够使得所获得的内存回收策略更加优化,优化的内存回
收策略使得目标应用能够缩短卡顿时长和/或提高内存回收效率,从而进一步改善用户使用目标应用过程中的使用体验。
73.具体实现中,步骤102可以通过以下方式实现,如图3中所示:
74.步骤301:按照线性回归算法,构建内存回收特征模型。
75.其中,内存回收特征模型表征内存状态数据与特征数据之间的对应关系,这里的内存状态数据为目标应用执行内存回收时的内存状态数据,特征数据是指目标应用执行内存回收的特征数据,以这两者之间的对应关系来构建内存回收特征模型。
76.例如,本实施例中通过线性回归曲线来标识内存回收特征模型,曲线中的点表示内存状态数据对应特征数据。
77.步骤302:基于控制条件,使用样本应用数据中的内存状态数据和执行内存回收的特征数据,对内存回收特征模型进行训练,训练得到的内存回收特征模型所包含的内存回收策略使得执行内存回收的持续时长和/或回收的内存空间满足控制条件。
78.具体的,本实施例中基于控制条件中所设置的内容:执行内存回收的持续时长小于或等于时长阈值,和/或,执行内存回收所回收到的内存空间大于或等于回收阈值,学习样本应用数据中的内存状态数据和执行内存回收的特征数据,进而学习出能够使得执行内存回收的持续时长小于或等于时长阈值和/或执行内存回收所回收到的内存空间大于或等于回收阈值的内存状态数据与特征数据之间的对应关系,由此得到内存回收特征模型,该内存回收特征模型中的内存回收特征是满足控制条件中对持续时长和回收的内存空间的条件的。
79.在一种实现方式中,本实施例在步骤103之前,即得到应用参数对应的内存回收策略之后,在控制目标应用在运行过程中按照内存回收策略执行内存回收之前,还可以包含如下步骤,如图4中所示:
80.步骤104:接收修改操作。
81.其中,修改操作中包含有针对内存回收策略的修改参数。
82.具体的,这里的修改参数可以包含有:修改内存回收策略中执行内存回收对应的内存状态数据的参数,和/或,修改内存回收策略中的内存回收算法的类型的参数。例如,用户在电子设备所输出的修改界面中对内存回收策略中的新生代内存最大值进行修改、对内存回收策略中的堆外内存大小进行修改,还可以对内存回收策略中的内存回收算法进行修改,等等。
83.步骤105:按照修改参数,对内存回收策略进行调整。
84.其中,本实施例中可以按照修改参数中:修改内存回收策略中执行内存回收对应的内存状态数据的参数,和/或,修改内存回收策略中的内存回收算法的类型的参数,对内存回收策略中执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型等指示参数进行调整。由此,在控制目标应用在运行过程中按照内存回收策略执行内存回收后,目标应用可以按照被调整后的内存回收策略中的指示参数执行内存回收。例如,按照被调整后的内存回收策略中的指示参数,设置目标应用执行内存回收的执行参数,进而使得目标应用按照执行参数执行内存回收。
85.在一种实现方式中,本实施例在步骤103之前,先对内存回收策略进行验证,即验证内存回收策略是否满足控制条件。也就是说,本实施例中在步骤102中得到应用参数对应
的内存回收策略之后,在步骤103中控制目标应用在运行过程中按照内存回收策略执行内存回收之前,还可以包含如下步骤,如图5中所示:
86.步骤106:控制目标应用在测试过程中按照内存回收策略执行内存回收,以得到内存回收策略的测试结果。
87.其中,测试结果中可以包含有目标应用在测试过程中执行内存回收的持续时长和/或执行内存回收所回收到的内存空间,以此表征目标应用按照内存回收策略执行内存回收的效果,同时,测试结果中包含有持续时长是否小于或等于时长阈值和/或回收的内存空间是否大于或等于空间阈值的判断结果,以表征内存回收策略是否满足控制条件。
88.步骤107:判断测试结果表征内存回收侧是否满足控制条件,如果测试结果表征内存回收策略满足控制条件,那么执行步骤103,以控制目标应用在运行过程中按照内存回收策略执行内存回收;而如果测试结果表征内存回收策略不满足控制条件,那么重新执行步骤102,以重新获得应用参数对应的内存回收策略,直到所获得到的测试结果表征新获得的内存回收策略满足控制条件。
89.其中,内存回收策略满足控制条件,可以为:持续时长是否小于或等于时长阈值,且,回收的内存空间是否大于或等于空间阈值;而内存回收策略不满足控制条件,可以为:持续时长是否小于或等于时长阈值,或,回收的内存空间是否大于或等于空间阈值
90.需要说明的是,步骤106和步骤107可以在步骤105之后以及步骤103之前执行,如图6中所示,由此,在步骤102中获得到应用参数对应的内存回收策略之后,先按照针对内存回收策略的修改参数对内存回收策略进行调整,再对内存回收策略在目标应用测试过程中的实际使用进行验证,进而在得到经过验证合格即满足控制条件的内存回收策略之后,控制目标应用按照经过验证合格的内存回收策略执行内存回收。
91.参考图7,为本技术实施例二提供的一种控制装置的结构示意图,该装置可以配置在能够运行应用程序的电子设备中,该电子设备可以为手机、pad、计算机或服务器等设备。这里的应用程序为运行过程中通过占用电子设备内存以实现相应的数据处理功能的程序,如聊天应用程序或购物应用程序等。本实施例中的技术方案主要用于提高应用程序运行过程中所使用的内存回收策略的设置效率。
92.具体的,本实施例中的装置可以包含如下单元:
93.参数获得单元701,用于获得目标应用的应用参数,所述应用参数表征所述目标应用执行内存回收的类型;
94.策略获得单元702,用于获得所述应用参数对应的内存回收策略;所述应用参数对应的内存回收策略至少基于所述应用参数对应的样本应用数据得到,所述样本应用数据至少包含内存状态数据和执行内存回收的特征数据;
95.回收控制单元703,用于控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收。
96.从上述技术方案可以看出,本技术实施例二提供的一种控制装置中,通过对目标应用的应用参数对应的样本应用数据进行学习,进而得到应用参数对应的内存回收策略,基于此,控制目标应用按照该内存回收策略执行内存回收。可见,本实施例中通过对样本应用数据中的内存状态数据和执行内存回收的特征数据进行学习,以得到能够控制目标应用执行内存回收的内存回收策略,而无需由运维人员对内存回收的机制进行手动设置,从而
提高内存回收策略的设置效率。
97.在一种实现方式中,所述内存回收策略至少包含执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型。
98.在一种实现方式中,所述应用参数对应的内存回收策略通过以下方式获得:按照线性回归算法,对所述样本应用数据中的内存状态数据和执行内存回收的特征数据进行分析,以得到内存回收策略;所述内存回收策略使得执行内存回收的持续时长和/或回收的内存空间满足控制条件。例如,首先按照线性回归算法,构建内存回收特征模型,所述内存回收特征模型表征内存状态数据与特征数据之间的对应关系;之后,基于所述控制条件,使用所述样本应用数据中的内存状态数据和执行内存回收的特征数据,对所述内存回收特征模型进行训练,训练得到的内存回收特征模型所包含的内存回收策略使得执行内存回收的持续时长和/或回收的内存空间满足所述控制条件。
99.其中,所述控制条件包含:所述持续时长小于或等于时长阈值,和/或,所述回收的内存空间大于或等于回收阈值。
100.在一种实现方式中,回收控制单元703具体用于:按照所述内存回收策略中执行内存回收对应的内存状态数据和执行内存回收的内存回收算法的类型,设置所述目标应用执行内存回收的执行参数,以使得所述目标应用按照所述执行参数执行内存回收。
101.在一种实现方式中,本实施例中的装置还可以包含如下单元,如图8中所示:
102.策略修改单元704,在回收控制单元703控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收之前,用于:接收修改操作,所述修改操作中包含针对所述内存回收策略的修改参数;按照所述修改参数,对所述内存回收策略进行调整。
103.在一种实现方式中,本实施例中的装置还可以包含如下单元,如图9或图10中所示:
104.策略验证单元705,在回收控制单元703控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收之前,用于:控制所述目标应用在测试过程中按照所述内存回收策略执行内存回收,以得到所述内存回收策略的测试结果;所述测试结果表征所述内存回收策略是否满足控制条件;如果所述测试结果表征所述内存回收策略满足所述控制条件,触发回收控制单元703;如果所述测试结果表征所述内存回收策略不满足所述控制条件,重新触发策略获得单元702。
105.需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
106.参考图11,为本技术实施例三提供的一种电子设备的结构示意图,该电子设备可以为能够运行应用程序的电子设备,该电子设备可以为手机、pad、计算机或服务器等设备。这里的应用程序为运行过程中通过占用电子设备内存以实现相应的数据处理功能的程序,如聊天应用程序或购物应用程序等。本实施例中的技术方案主要用于提高应用程序运行过程中所使用的内存回收策略的设置效率。
107.具体的,本实施例中的电子设备可以包含如下结构:
108.存储器1101,用于存储计算机程序以及所述计算机程序运行所产生的数据;
109.处理器1102,用于执行所述计算机程序,以实现:获得目标应用的应用参数,所述应用参数表征所述目标应用执行内存回收的类型;获得所述应用参数对应的内存回收策
略;所述应用参数对应的内存回收策略至少基于所述应用参数对应的样本应用数据得到,所述样本应用数据至少包含内存状态数据和执行内存回收的特征数据;控制所述目标应用在运行过程中按照所述内存回收策略执行内存回收。
110.从上述技术方案可以看出,本技术实施例三提供的一种电子设备中,通过对目标应用的应用参数对应的样本应用数据进行学习,进而得到应用参数对应的内存回收策略,基于此,控制目标应用按照该内存回收策略执行内存回收。可见,本实施例中通过对样本应用数据中的内存状态数据和执行内存回收的特征数据进行学习,以得到能够控制目标应用执行内存回收的内存回收策略,而无需由运维人员对内存回收的机制进行手动设置,从而提高内存回收策略的设置效率。
111.以低代码平台中的应用开发为例,低代码平台通过java发布的应用在运行时会产生长时间的内存回收消耗,对低代码平台发布的应用体验造成很大影响。为此有必要为此类内存回收的机制进行策略调整。而目前的完全依赖于工程师和系统运维人员的个人经验设置内存回收策的方案,会导致策略设置耗时时间长且调整策略需要经过长时间的测试和验证,无法自动化。这针对这些缺陷,本技术的技术方案中通过对应用的样本有应用数据进行学习,实现内存回收策略的自动生成,而在学习过程中提前预估应用内存消耗和可能执行内存回收的时间长,以使得所设置的内存回收策略能够避免长时间内存回收对服务节点造成长时间停顿的现象。
112.以下对本技术的技术方案中的执行流程进行说明,如图12中所示:
113.在低代码平台应用发布之前,提前准备低代码应用gc(garbage collection)特征模型,即前文中的内存回收特征模型,gc特征模型的准备流程如下:
114.1、利用线性回归分析方法建立低代码应用gc特征模型。需要说明的是,后续经过训练成熟的gc特征模型可以被重复使用。其中,用户预先在低代码平台上完成应用发布的准备步骤,并执行应用沙箱环境的发布。
115.(a)以发布的低代码应用沙箱(可以理解为压测环境)内存状态数据(如新生代内存最大值、老年代内存最大值、堆外内存最大值、栈大小、线程最大最小值)作为自变量,以各种gc特征数据(如执行内存回收对应的内存状态数据、执行内存回收的持续时长、执行内存回收所回收到的内存空间、执行内存回收的内存回收算法的类型等)为因变量,通过线性回归算法,基于低代码平台应用压测的gc日志文件中的样本应用数据进行分析,最终构建出gc特征模型。
116.(b)利用人工方式对gc特征模型中的策略内容进行调整。例如:应用访问量到10w的时候执行一次minor gc,100w的时候执行一次full gc,由此,得到一个被调整后的gc特征模型。
117.(c)基于低代码平台应用对被调整后的gc特征模型进行线性回归分析,以验证gc特征模型,在经过(b)中调整策略后,最终建立比较完善的gc特征模型。
118.基于以上所得到的gc特征模型,本技术的技术方案在低代码平台应用发布时,用户先登录低代码平台并在低代码平台上完成应用发布的准备步骤,并执行应用沙箱环境的发布,在应用发布之前,触发gc配置提取以及gc策略设置任务,即:将沙箱环境中java运行时产生的内存状态数据输入到gc特征模型,由此gc特征模型根据这些内存状态数据预测出gc的配置,之后将gc的配置填充到应用启动项中,由此完成应用发布后启动应用实例。而这
其中的gc特征模型则是通过前文中的方式得到,即:基于设计环境对应用的压测数据以及应用产生的内存状态数据构建gc特征模型,在进行人工调整以及回归验证之后,完成gc特征模型,以便于在应用发布后预测出相应的gc配置,即执行内存回收的内存状态数据以及执行内存回收的内存回收算法的类型等等。可见,本技术中在对应用进行压测时,获取应用执行的内存状态数据以及gc的特征数据,在由此得到gc特征模型之后,当用户执行应用发布时,自动触发运行基于决策树的算法程序即前文中的内存回收算法,利用上述步骤中准备的gc特征模型,对即将发布的低代码平台应用产生的内存以及gc数据进行适配并设置内存回收策略,使得应用按照设置的内存回收策略执行内存回收。
119.综上,本技术的技术方案中有如下核心要点:
120.1、在低代码平台的设计环境中,运用监控技术对应用所在虚拟机的内存变化曲线以及内存回收的时间曲线进行监控以及标注特征分类,同时对应用所在java虚拟机内存各个区域数值进行记录并将记录的内存数值关联到之前标注的特征分类上,由此得到前文中的样本应用数据中的内存状态数据和执行内存回收的特征数据;
121.2、根据内存状态数据中的各项数据和特征数据,以规划合适的内存调度机制以及应用启动时所适合的内存回收gc参数,即前文中的内存回收策略中的指示参数;
122.3、用户可以根据业务需求,灵活调整内存回收策略。例如,618之前2天内存回收要提前进行,以避免在访问量大的时候产生长时间内存回收导致应用停顿。
123.可见,本技术的技术方案无需长时间对应用的内存回收策略进行调试,可以使得运维管理变得简单,而且能够提高系统的可用性并减少系统运维人员的学习成本。
124.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
125.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
126.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
127.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献