本发明专利技术公开了一种服务器内存防溢出方法、装置、设备及存储介质,通过获取参数及其参数类型,根据参数类型判断参数是否为参数集合,若是,则获取参数集合的数据量;判断数据量是否大于临界值,若大于临界值,则基于数据量和临界值,得到拆分数,基于拆分数对参数集合进行拆分,得到多个请求子参数;依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,对递归结果进行整合处理,得到最终递归结果;与现有技术相比,本发明专利技术提供的技术方案通过临界值对参数集合进行拆分,依次对拆分后的请求子参数进行递归,以使在递归过程中减少对服务器内存的占用,避免服务器内存溢出,同时降低服务器成本。同时降低服务器成本。同时降低服务器成本。
【技术实现步骤摘要】
一种服务器内存防溢出方法、装置、设备及存储介质
[0001]本专利技术涉及大数据的
,特别是涉及一种服务器内存防溢出方法、装置、设备及存储介质。
技术介绍
[0002]应用程序每次调用一个方法就会创建一个栈帧放入栈中,方法结束后会将栈帧从栈顶弹出,当程序中存在递归调用方法并且参数过多导致递归次数变大时,会导致服务器栈内存溢出。目前大部分公司针对服务器内存溢出问题,会进行改变jvm参数或者增加服务器内存容量的方式来解决服务器内存溢出问题;但若服务器内存已满,即使对jvm参数进行修改也无法解决内存溢出问题,同样容易使得服务器内存溢出,导致服务报错;而通过对服务器进行扩容,虽然能解决服务器内存溢出的问题,则会增加服务器的成本。
技术实现思路
[0003]本专利技术要解决的技术问题是:提供一种服务器内存防溢出方法、装置、设备及存储介质,通过减少对服务器内存的占用,避免服务器内存溢出,同时降低服务器成本。
[0004]为了解决上述技术问题,本专利技术提供了一种服务器内存防溢出方法,包括:
[0005]获取参数及其参数类型,根据所述参数类型判断所述参数是否为参数集合,若是,则获取所述参数集合的数据量;
[0006]判断所述数据量是否大于临界值,若大于所述临界值,则基于所述数据量和所述临界值,得到拆分数,基于所述拆分数对所述参数集合进行拆分,得到多个请求子参数;
[0007]依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,对所述递归结果进行整合处理,得到最终递归结果。
[0008]在一种可能的实现方式中,根据所述参数类型判断所述参数是否为参数集合,还包括:
[0009]若根据所述参数类型判断所述参数不是参数集合时,直接对所述参数进行递归处理,得到最终递归结果。
[0010]在一种可能的实现方式中,判断所述数据量是否大于临界值前,还包括:
[0011]获取服务器的剩余内存,同时获取每次递归处理所需的栈内存,基于所述剩余内存和所述栈内存,确定所述临界值。
[0012]在一种可能的实现方式中,基于所述数据量和所述临界值,得到拆分数,具体包括:
[0013]将所述数据量除以所述临界值,得到第一商,若所述第一商为整数,则将所述第一商作为拆分数,若所述第一商不为整数,则对所述第一商加上数值1,得到第二商,将所述第二商作为拆分数。
[0014]在一种可能的实现方式中,基于所述拆分数对所述参数集合进行拆分,得到多个请求子参数,具体包括:
[0015]根据所述参数集合的数据量,将所述数据量除以所述拆分数,得到每个请求子参数的子参数数量,基于所述子参数数量,按顺序对所述参数集合进行参数提取,以使将所述参数集合划分为多个请求子参数。
[0016]在一种可能的实现方式中,依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,具体包括:
[0017]获取每个请求子参数中的参数数量,若所述参数数量为1时,直接对每个请求子参数进行递归处理,得到每个请求子参数的递归结果;
[0018]若所述参数数量大于1时,获取每个请求子参数中的每个参数的编号,依次对每个参数进行递归处理,得到每个参数对应的参数递归结果,并基于每个参数的编号,对所述参数递归结果进行排序,得到每个请求子参数的递归结果。
[0019]本专利技术还提供了一种服务器内存防溢出装置,包括:参数类型获取模块、参数拆分模块和递归结果整合模块;
[0020]其中,所述参数类型获取模块,用于获取参数及其参数类型,根据所述参数类型判断所述参数是否为参数集合,若是,则获取所述参数集合的数据量;
[0021]所述参数拆分模块,用于判断所述数据量是否大于临界值,若大于所述临界值,则基于所述数据量和所述临界值,得到拆分数,基于所述拆分数对所述参数集合进行拆分,得到多个请求子参数;
[0022]所述递归结果整合模块,用于依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,对所述递归结果进行整合处理,得到最终递归结果。
[0023]在一种可能的实现方式中,所述参数类型获取模块,用于根据所述参数类型判断所述参数是否为参数集合,还包括:
[0024]若根据所述参数类型判断所述参数不是参数集合时,直接对所述参数进行递归处理,得到最终递归结果。
[0025]在一种可能的实现方式中,所述参数拆分模块,还用于服务器的剩余内存,同时获取每次递归处理所需的栈内存,基于所述剩余内存和所述栈内存,确定所述临界值。
[0026]在一种可能的实现方式中,所述参数拆分模块,用于基于所述数据量和所述临界值,得到拆分数,具体包括:
[0027]将所述数据量除以所述临界值,得到第一商,若所述第一商为整数,则将所述第一商作为拆分数,若所述第一商不为整数,则对所述第一商加上数值1,得到第二商,将所述第二商作为拆分数。
[0028]在一种可能的实现方式中,所述参数拆分模块,用于基于所述拆分数对所述参数集合进行拆分,得到多个请求子参数,具体包括:
[0029]根据所述参数集合的数据量,将所述数据量除以所述拆分数,得到每个请求子参数的子参数数量,基于所述子参数数量,按顺序对所述参数集合进行参数提取,以使将所述参数集合划分为多个请求子参数。
[0030]在一种可能的实现方式中,所述递归结果整合模块,用于依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,具体包括:
[0031]获取每个请求子参数中的参数数量,若所述参数数量为1时,直接对每个请求子参数进行递归处理,得到每个请求子参数的递归结果;
[0032]若所述参数数量大于1时,获取每个请求子参数中的每个参数的编号,依次对每个参数进行递归处理,得到每个参数对应的参数递归结果,并基于每个参数的编号,对所述参数递归结果进行排序,得到每个请求子参数的递归结果。
[0033]本专利技术还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的服务器内存防溢出方法。
[0034]本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的服务器内存防溢出方法。
[0035]本专利技术实施例一种服务器内存防溢出方法、装置、设备及存储介质,与现有技术相比,具有如下有益效果:
[0036]通过获取参数及其参数类型,根据参数类型判断参数是否为参数集合,若是,则获取参数集合的数据量;判断数据量是否大于临界值,若大于临界值,则基于数据量和临界值,得到拆分数,基于拆分数对参数集合进行拆分,得到多个请求子参数;依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,对递归结果进行整合处理,得到最终递归结果;与现有技术相比,本专利技术提供的技术方案通过临界值对参数集本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种服务器内存防溢出方法,其特征在于,包括:获取参数及其参数类型,根据所述参数类型判断所述参数是否为参数集合,若是,则获取所述参数集合的数据量;判断所述数据量是否大于临界值,若大于所述临界值,则基于所述数据量和所述临界值,得到拆分数,基于所述拆分数对所述参数集合进行拆分,得到多个请求子参数;依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,对所述递归结果进行整合处理,得到最终递归结果。2.如权利要求1所述的一种服务器内存防溢出方法,其特征在于,根据所述参数类型判断所述参数是否为参数集合,还包括:若根据所述参数类型判断所述参数不是参数集合时,直接对所述参数进行递归处理,得到最终递归结果。3.如权利要求1所述的一种服务器内存防溢出方法,其特征在于,判断所述数据量是否大于临界值前,还包括:获取服务器的剩余内存,同时获取每次递归处理所需的栈内存,基于所述剩余内存和所述栈内存,确定所述临界值。4.如权利要求1所述的一种服务器内存防溢出方法,其特征在于,基于所述数据量和所述临界值,得到拆分数,具体包括:将所述数据量除以所述临界值,得到第一商,若所述第一商为整数,则将所述第一商作为拆分数,若所述第一商不为整数,则对所述第一商加上数值1,得到第二商,将所述第二商作为拆分数。5.如权利要求1所述的一种服务器内存防溢出方法,其特征在于,基于所述拆分数对所述参数集合进行拆分,得到多个请求子参数,具体包括:根据所述参数集合的数据量,将所述数据量除以所述拆分数,得到每个请求子参数的子参数数量,基于所述子参数数量,按顺序对所述参数集合进行参数提取,以使将所述参数集合划分为多个请求子参数。6.如权利要求1所述的一种服务器内存防溢出方法,其特征在于,依次对每个请求子参数进行递归处理,得到每个请求子参数的递归结果,...
【专利技术属性】
技术研发人员:高鹏伟,李青,林弟,张常华,朱正辉,赵定金,
申请(专利权)人:广州市保伦电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。