缓存读取量调整方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种缓存读取量调整方法、装置、电子设备及存储介质。
背景技术
目前,基于全量解析或者增量解析,即可实现对HTML文件的解析。全量解析,顾名思义,将待解析的HTML文件一次性读取至缓存中进行解析,而增量解析则恰恰相反,对于待解析的HTML文件,可以达到边读取边解析的效果。
相关技术中,为了解决解析百万级HTML文件导致系统出现的内存溢出问题,对于待解析的HTML文件,主要采用增量解析实现对该HTML文件的解析。然而,在解决系统内存溢出问题的同时,需要将待解析的HTML文件对应的缓存读取量,限制在一个固定且很小的数量级。
由于硬件系统性能的不断提高,这种刻板的限制缓存读取量的方式,一方面影响了HTML文件的解析性能,另一方面无法充分发挥不断提高的硬件系统性能。
发明内容
本发明实施例的目的在于提供一种缓存读取量调整方法、装置、电子设备及存储介质,以实现提升HTML文件的解析性能、充分发挥硬件系统性能的有益效果。具体技术方案如下:
在本发明实施例的第一方面,首先提供了一种缓存读取量调整方法,所述方法包括:
在对目标文件进行解析的情况下,获取系统运行指标数据;
将所述系统运行指标数据输入至缓存良性等级预测模型,输出与所述系统运行指标数据对应的缓存良性等级;
确定与所述缓存良性等级对应的缓存读取量调整策略;
根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量。
在一个可选的实施方式中,所述在对目标文件进行解析的情况下,获取系统运行指标数据,包括:
获取待解析的原始文件,将所述原始文件转换成目标文件;
在对目标文件进行解析的情况下,获取系统运行指标数据。
在一个可选的实施方式中,所述确定与所述缓存良性等级对应的缓存读取量调整策略,包括:
根据预设的缓存良性等级与缓存读取量调整策略的对应关系,确定与所述缓存良性等级对应的缓存读取量调整策略。
在一个可选的实施方式中,所述根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量,包括:
若所述缓存读取量调整策略为缓存读取量增加策略,根据预设的增加比例调整对所述目标文件的缓存读取量;
若所述缓存读取量调整策略为缓存读取量减少策略,根据预设的减少比例调整对所述目标文件的缓存读取量;
若所述缓存读取量调整策略为缓存读取量保持策略,保持对所述目标文件的缓存读取量。
在一个可选的实施方式中,所述缓存良性等级预测模型具体通过以下方式得到:
获取系统运行指标样本数据,其中,所述系统运行指标样本数据的样本标签为缓存良性等级;
基于所述系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到所述缓存良性等级预测模型。
在一个可选的实施方式中,所述方法还包括:
统计所述系统运行指标数据的数量;
若所述系统运行指标数据的数量超过预设数量,与所述系统运行指标样本数据进行组合,生成新的系统运行指标样本数据;
基于所述新的系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到新的缓存良性等级预测模型;
利用所述新的缓存良性等级预测模型对所述缓存良性等级预测模型进行更新。
在本发明实施例的第二方面,还提供了一种缓存读取量调整装置,所述装置包括:
数据获取模块,用于在对目标文件进行解析的情况下,获取系统运行指标数据;
等级输出模块,用于将所述系统运行指标数据输入至缓存良性等级预测模型,输出与所述系统运行指标数据对应的缓存良性等级;
策略确定模块,用于确定与所述缓存良性等级对应的缓存读取量调整策略;
读取量调整模块,用于根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量。
在一个可选的实施方式中,所述数据获取模块具体用于:
获取待解析的原始文件,将所述原始文件转换成目标文件;
在对目标文件进行解析的情况下,获取系统运行指标数据。
在本发明实施例的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面中任一所述的缓存读取量调整方法。
在本发明实施例的第四方面,还提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中任一所述的缓存读取量调整方法。
在本发明实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中任一所述的缓存读取量调整方法。
本发明实施例提供的技术方案,在对目标文件进行解析的情况下,通过获取系统运行指标数据,并输入至缓存良性等级预测模型,输出与系统运行指标数据对应的缓存良性等级,从而确定与缓存良性等级对应的缓存读取量调整策略,进而根据缓存读取量调整策略,调整对目标文件的缓存读取量。如此可以动态的调整目标文件的缓存读取量,可以提升HTML文件的解析性能,且充分发挥硬件系统性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中示出的一种缓存读取量调整方法的实施流程示意图;
图2为本发明实施例中示出的一种缓存良性等级预测模型的示意图;
图3为本发明实施例中示出的另一种缓存读取量调整方法的实施流程示意图;
图4为本发明实施例中示出的一种得到缓存良性等级预测模型的实施流程示意图;
图5为本发明实施例中示出的一种缓存良性等级预测模型更新方法的实施流程示意图;
图6为本发明实施例中示出的一种缓存读取量调整装置的结构示意图;
图7为本发明实施例中示出的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种缓存读取量调整方法的实施流程示意图,该方法具体可以包括以下步骤:
S101,在对目标文件进行解析的情况下,获取系统运行指标数据;
在本发明实施例中,为了实现对某个原始文件的解析,例如千万量级的Excel文件,需要将该千万量级的Excel文件转换成HTML文件,通过解析HTML文件,从而将千万量级的Excel文件中数据解析到缓存(例如内存)中。
因此,本发明实施例可以获取待解析的原始文件,将该原始文件转换成目标文件。其中,对于待解析的原始文件,可以是任意格式的文件,对于目标文件,可以是HTML文件,通过解析该HTML文件,从而将原始文件中数据解析到缓存(例如内存)中。
在对目标文件进行解析的情况下,本发明实施例可以获取系统运行指标数据,其中,系统运行指标数据至少包括下述数据之一:CPU状态、缓存状态、I/O读写状态、cache状态等数据。
例如,本发明实施例可以获取千万量级的Excel文件,将该千万量级的Excel文件转换成HTML文件,在对该HTML文件进行解析的情况下,获取CPU状态(使用率5%)、缓存状态(使用率30%)等数据。
另外,在对目标文件进行解析的情况下,系统默认缓存读取量,例如默认目标文件中10行数据,所占用内存理论值为10×每行字节数,后续可以动态的调整对目标文件的缓存读取量。
S102,将所述系统运行指标数据输入至缓存良性等级预测模型,输出与所述系统运行指标数据对应的缓存良性等级;
在本发明实施例中,提供缓存良性等级预测模型,其中,该缓存良性等级预测模型可以基于多个携带缓存良性等级标签的系统运行指标样本数据进行训练得到。
对于上述获取的系统运行指标数据,可以将该系统运行指标数据输入至缓存良性等级预测模型,可以输出与该系统运行指标数据对应的缓存良性等级。
例如,上述获取的系统运行指标数据包括:CPU状态(使用率5%)、缓存状态(使用率30%)等数据,将该CPU状态(使用率5%)、缓存状态(使用率30%)等数据输入至缓存良性等级预测模型,可以输出与该CPU状态(使用率5%)、缓存状态(使用率30%)等数据对应的缓存良性等级(2),如图2所示。
对于上述缓存良性等级预测模型,在本发明实施例中具体可以是缓存良性等级决策树,当然还可以是其它类型的模型,本发明实施例对此不作限定。
S103,确定与所述缓存良性等级对应的缓存读取量调整策略;
对于上述输出的与该系统运行指标数据对应的缓存良性等级,本发明实施例可以确定与该缓存良性等级对应的缓存读取量调整策略。
例如,对于上述输出的与该系统运行指标数据对应的缓存良性等级(2),本发明实施例可以确定与缓存良性等级(2)对应的缓存读取量调整策略。
S104,根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量。
对于对目标文件的缓存读取量,本发明实施例可以依据上述步骤确定的缓存读取量调整策略进行调整,以达到动态调整缓存读取量的目的。
例如,在对目标文件进行解析的情况下,系统默认缓存读取量,例如默认目标文件中10行数据,后续本发明实施例可以确定与缓存良性等级(2)对应的缓存读取量调整策略(2),根据缓存读取量调整策略(2),调整对目标文件的缓存读取量。
通过上述对本发明实施例提供的技术方案的描述,在对目标文件进行解析的情况下,通过获取系统运行指标数据,并输入至缓存良性等级预测模型,输出与系统运行指标数据对应的缓存良性等级,从而确定与缓存良性等级对应的缓存读取量调整策略,进而根据缓存读取量调整策略,调整对目标文件的缓存读取量。如此可以动态的调整目标文件的缓存读取量,可以提升HTML文件的解析性能,且充分发挥硬件系统性能。
如图3所示,为本发明实施例提供的另一种缓存读取量调整方法的实施流程示意图,该方法具体可以包括以下步骤:
S301,在对目标文件进行解析的情况下,获取系统运行指标数据;
在本发明实施例中,本步骤与上述步骤S101类似,本发明实施例在此不再一一赘述。
S302,将所述系统运行指标数据输入至缓存良性等级预测模型,输出与所述系统运行指标数据对应的缓存良性等级;
在本发明实施例中,本步骤与上述步骤S102类似,本发明实施例在此不再一一赘述。
S303,根据预设的缓存良性等级与缓存读取量调整策略的对应关系,确定与所述缓存良性等级对应的缓存读取量调整策略;
在本发明实施例中,预先设置缓存良性等级与缓存读取量调整策略的映射表,具体可以如下表1所示,缓存良性等级与缓存读取量调整策略一一对应。
表1
对于上述输出的与系统运行指标数据对应的缓存良性等级,本发明实施例可以根据预设的缓存良性等级与缓存读取量调整策略的对应关系,确定与缓存良性等级对应的缓存读取量调整策略。
例如,对于上述输出的与系统运行指标数据对应的缓存良性等级(2),参照上述表1,根据预设的缓存良性等级与缓存读取量调整策略的对应关系,确定与缓存良性等级(2)对应的缓存读取量调整策略(需要增加)。
S304,根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量。
对于缓存读取量调整策略,在本发明实施例中存在3种类型,分别如下所示:缓存读取量增加策略、缓存读取量减少策略、缓存读取量保持策略。对于不同类型的缓存读取量调整策略,对目标文件的缓存读取量进行不同的调整。
具体地,若缓存读取量调整策略为缓存读取量增加策略,根据预设的增加比例调整对所述目标文件的缓存读取量。
例如,若缓存读取量调整策略为缓存读取量增加策略,根据预设的增加比例(例如增加10%)调整对所述目标文件的缓存读取量,相应的所占用内存理论值也增加10%。
具体地,若所述缓存读取量调整策略为缓存读取量减少策略,根据预设的减少比例调整对所述目标文件的缓存读取量。
例如,若所述缓存读取量调整策略为缓存读取量减少策略,根据预设的减少比例(例如减少5%)调整对所述目标文件的缓存读取量,相应的所占用内存理论值也减少5%。
具体地,若所述缓存读取量调整策略为缓存读取量保持策略,保持对所述目标文件的缓存读取量。
例如,若所述缓存读取量调整策略为缓存读取量保持策略,保持对所述目标文件的缓存读取量,例如目标文件中10行数据,相应的所占用内存理论值为10×每行字节数。
如图4所示,为本发明实施例提供的一种得到缓存良性等级预测模型的实施流程示意图,该方法具体可以包括以下步骤:
S401,获取系统运行指标样本数据,其中,所述系统运行指标样本数据的样本标签为缓存良性等级;
在本发明实施例中,为了得到缓存良性等级预测模型,获取系统运行指标样本数据。其中,该系统运行指标样本数据至少包括下述数据之一:CPU状态、缓存状态、I/O读写状态、cache状态等数据。
对于一条系统运行指标样本数据而言,其样本标签为缓存良性等级。例如,可以如下表2所示。
表2
S402,基于所述系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到所述缓存良性等级预测模型。
对于上述获取的系统运行指标样本数据,本发明实施例基于该系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到所述缓存良性等级预测模型。
对于缓存良性等级预测算法,例如可以是ID3算法、C4.5算法等,对于缓存良性等级预测模型,例如可以是缓存良性等级决策树,本发明实施例对此不作限定。
其中,在进行模型训练的过程中,如果迭代次数超过预设次数,例如迭代次数超过一万次,可以停止模型训练。
或者,如果正确率超过预设阈值,例如正确率超过95%,同样可以停止模型训练,对于模型停止训练的条件还可以是其它条件,本发明实施例在此不再一一赘述。
如图5所示,为本发明实施例提供的一种缓存良性等级预测模型更新方法的流程示意图,该方法具体可以包括以下步骤:
S501,统计所述系统运行指标数据的数量;
在本发明实施例中,为了实现对缓存良性等级预测模型的更新,对于上述系统运行指标数据的数量进行统计。
其中,由于缓存良性等级预测模型的准确率并不能保证百分之百,则相应的输出的与所述系统运行指标数据对应的缓存良性等级,与系统运行指标数据对应的实际缓存良性等级相比,存在正确与错误的两种现象。
因此,本发明实施例可以根据输出的缓存良性等级的正确与否,对系统运行指标数据的数量进行分类统计,便于后续区分正样本与负样本,例如,可以如下表3所示。
表3
S502,若所述系统运行指标数据的数量超过预设数量,与所述系统运行指标样本数据进行组合,生成新的系统运行指标样本数据;
对于上述统计的系统运行指标数据的数量,如果系统运行指标数据的数量超过预设数量,则可以与上述系统运行指标样本数据进行组合,生成新的系统运行指标样本数据。其中,新的系统运行指标样本数据中存在负样本。
例如,如果系统运行指标数据的数量超过预设数量(10000),将上述系统运行指标数据与上述系统运行指标样本数据进行组合,生成新的系统运行指标样本数据。
S503,基于所述新的系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到新的缓存良性等级预测模型;
对于上述得到的新的系统运行指标样本数据,本发明实施例基于该新的系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到新的缓存良性等级预测模型。
其中,对于缓存良性等级预测算法,例如可以是ID3算法、C4.5算法等,对于缓存良性等级预测模型,可以是缓存良性等级决策树,本发明实施例对此不作限定。
另外,在进行模型训练的过程中,如果迭代次数超过预设次数,例如迭代次数超过一万次,可以停止模型训练。
或者,如果正确率超过预设阈值,例如正确率超过95%,同样可以停止模型训练,对于模型停止训练的条件还可以是其它条件,本发明实施例在此不再一一赘述。
S504,利用所述新的缓存良性等级预测模型对所述缓存良性等级预测模型进行更新。
对于上述得到的新的缓存良性等级预测模型,可以利用该新的缓存良性等级预测模型对上述缓存良性等级预测模型进行更新,后续可以应用该新的缓存良性等级预测模型。
例如,对于上述得到的新的缓存良性等级决策树,利用该新的缓存良性等级决策树,更新上述缓存良性等级决策树,便于后续对目标文件的缓存读取量进行调整的过程中,应用该新的缓存良性等级决策树。
与上述方法实施例相对应,本发明实施例还提供了一种缓存读取量调整装置,如图6所示,该装置可以包括:数据获取模块610、等级输出模块620、策略确定模块630、读取量调整模块640。
数据获取模块610,用于在对目标文件进行解析的情况下,获取系统运行指标数据;
等级输出模块620,用于将所述系统运行指标数据输入至缓存良性等级预测模型,输出与所述系统运行指标数据对应的缓存良性等级;
策略确定模块630,用于确定与所述缓存良性等级对应的缓存读取量调整策略;
读取量调整模块640,用于根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量。
在本发明实施例的具体实施方式中,所述数据获取模块610具体用于:
获取待解析的原始文件,将所述原始文件转换成目标文件;
在对目标文件进行解析的情况下,获取系统运行指标数据。
在本发明实施例的具体实施方式中,所述策略确定模块630具体用于:
根据预设的缓存良性等级与缓存读取量调整策略的对应关系,确定与所述缓存良性等级对应的缓存读取量调整策略。
在本发明实施例的具体实施方式中,所述读取量调整模块640具体用于:
若所述缓存读取量调整策略为缓存读取量增加策略,根据预设的增加比例调整对所述目标文件的缓存读取量;
若所述缓存读取量调整策略为缓存读取量减少策略,根据预设的减少比例调整对所述目标文件的缓存读取量;
若所述缓存读取量调整策略为缓存读取量保持策略,保持对所述目标文件的缓存读取量。
在本发明实施例的具体实施方式中,所述装置还包括:
模型训练模块650,用于获取系统运行指标样本数据,其中,所述系统运行指标样本数据的样本标签为缓存良性等级;
基于所述系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到所述缓存良性等级预测模型。
在本发明实施例的具体实施方式中,所述装置还包括:
模型更新模块660,用于统计所述系统运行指标数据的数量;
若所述系统运行指标数据的数量超过预设数量,与所述系统运行指标样本数据进行组合,生成新的系统运行指标样本数据;
基于所述新的系统运行指标样本数据,利用预设的缓存良性等级预测算法进行训练,得到新的缓存良性等级预测模型;
利用所述新的缓存良性等级预测模型对所述缓存良性等级预测模型进行更新。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器71、通信接口72、存储器73和通信总线74,其中,处理器71,通信接口72,存储器73通过通信总线74完成相互间的通信,
存储器73,用于存放计算机程序;
处理器71,用于执行存储器73上所存放的程序时,实现如下步骤:
在对目标文件进行解析的情况下,获取系统运行指标数据;将所述系统运行指标数据输入至缓存良性等级预测模型,输出与所述系统运行指标数据对应的缓存良性等级;确定与所述缓存良性等级对应的缓存读取量调整策略;根据所述缓存读取量调整策略,调整对所述目标文件的缓存读取量。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的缓存读取量调整方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的缓存读取量调整方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在存储介质中,或者从一个存储介质向另一个存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。