CN111400030A - 内存数据优化方法、装置、计算机设备及存储介质 - Google Patents

内存数据优化方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111400030A
CN111400030A CN202010092300.2A CN202010092300A CN111400030A CN 111400030 A CN111400030 A CN 111400030A CN 202010092300 A CN202010092300 A CN 202010092300A CN 111400030 A CN111400030 A CN 111400030A
Authority
CN
China
Prior art keywords
data
preset
memory
data set
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010092300.2A
Other languages
English (en)
Inventor
蔡金成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN202010092300.2A priority Critical patent/CN111400030A/zh
Publication of CN111400030A publication Critical patent/CN111400030A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及聚类算法领域,公开了一种内存数据优化方法、装置、计算机设备及存储介质,其方法包括:获取待处理的数据集;判断数据集的数据处理量是否大于预设阈值;若数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;根据第一预设内存优化机制和\或第二预设内存优化机制对数据集进行处理,获得计算结果。本发明可以减少在大规模数据计算时的出错,确保获得需要的计算结果,同时减少计算时长。

Description

内存数据优化方法、装置、计算机设备及存储介质
技术领域
本发明涉及聚类算法领域,尤其涉及一种内存数据优化方法、装置、计算机设备及存储介质。
背景技术
轮廓系数(Silhouette Coefficient)是一种聚类结果评价方法,用于评估无监督聚类算法的效果以及确定聚类过程中簇(即分组)的个数。轮廓系数结合聚类的凝聚度(Cohesion)和分离度(Separation)对聚类效果进行评价。
然而,轮廓系数在大规模数据计算时经常出现未知错误,导致无法获得计算结果。现有的解决手段一般是减少数据集的样本数量,计算原数据集的子集的轮廓系数。这种计算方式无法评价聚类结果的整体效果,计算结果也容易出现较大偏差。此外,在计算高维的大规模数据集的轮廓系数时,即使可以获得计算结果,其计算耗时过长,影响了轮廓系数的应用。
发明内容
基于此,有必要针对上述技术问题,提供一种内存数据优化方法、装置、计算机设备及存储介质,以减少在大规模数据计算时的出错,确保获得需要的计算结果,同时减少计算时长。
发明人经多次试验,发现在处理大规模数据时,通过更改数据集内存的占用,可以有效地减少计算出错,更快地获得有效的数据处理结果。
一种内存数据优化方法,包括:
获取待处理的数据集,所述数据集用于聚类分析;
判断所述数据集的数据处理量是否大于预设阈值;
若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
一种内存数据优化装置,包括:
获取模块,用于获取待处理的数据集,所述数据集用于聚类分析;
判断模块,用于判断所述数据集的数据处理量是否大于预设阈值;
获取机制模块,用于若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
计算优化模块,用于根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
获取结果模块,用于根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述内存数据优化方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述内存数据优化方法。
上述内存数据优化方法、装置、计算机设备及存储介质,通过获取待处理的数据集,所述数据集用于聚类分析,以得到数据样本。判断所述数据集的数据处理量是否大于预设阈值,以初步评估数据集的计算量。若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制,以采取适当的优化机制,提高对数据集的处理能力。根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤,以执行相应的内存优化机制。根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果,以完成对数据集的处理,获得需要得到的计算结果,减少在大规模数据计算时的出错,确保获得需要的计算结果,同时减少计算时长。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中内存数据优化方法的一应用环境示意图;
图2是本发明一实施例中内存数据优化方法的一流程示意图;
图3是本发明一实施例中内存数据优化方法的一流程示意图;
图4是本发明一实施例中内存数据优化方法的一流程示意图;
图5是本发明一实施例中内存数据优化方法的一流程示意图;
图6是本发明一实施例中内存数据优化方法的一流程示意图;
图7是本发明一实施例中内存数据优化方法的一流程示意图;
图8是本发明一实施例中内存数据优化装置的一结构示意图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的内存数据优化方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务端进行通信。其中,客户端包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种内存数据优化方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤:
S10、获取待处理的数据集,所述数据集用于聚类分析;
S20、判断所述数据集的数据处理量是否大于预设阈值;
S30、若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
S40、根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
S50、根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
本实施例中,数据集可以是包含大量样本的集合。特别的,数据集可以是用于进行聚类分析的集合。聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。聚类分析是一组将研究对象分为相对同质的群组的统计分析技术。聚类分析可用于划分客户群体、生物分类、文件修复、数据挖掘等场景。
预设阈值可以根据实际需要进行设定。例如,预设阈值可以设置为10万。当数据集的数据处理量大于预设阈值时,说明对于当前的服务器而言,数据集的样本数据已经超出该服务器所能达到的最高水平。此时若继续按照原先的计算方式去获取计算结果,往往会出现未知错误,导致无法获得计算结果。
一实例中,在一配置为:20核CPU,CPU主频2.39GHz,256G内存,内存主频2400MHz的服务器上计算一个样本数量为100万的数据集的轮廓系数时,该数据集中每个样本的维度均为10维。在一次测试中,该轮廓系数的计算耗时长达21503.8秒。事实上,若将该服务器换成普通家用的计算机,如内存为8G的计算机,则运行时间将会大大延长。可能等待多天仍无法获得结果。
需要通过内存优化机制,改善数据计算时对内存的占用,以确保可以获得有效的计算结果。在此处,第一预设内存优化机制可用于减少样本数据的内存占用,节省每个样本在内存中占据的空间,以防止出现内存错误。第二预设内存优化机制用于对预设数据计算方法的改进,具体体现在两方面,一方面在于灵活设置数据集的距离矩阵的占用内存,以使在计算距离矩阵时,更合理地使用内存,减少运算次数,另一方面则体现在设置内存回收机制,以克服内存泄露。这两种内存优化机制可以择一选用,也可以同时使用。
预设数据计算方法,即为用于处理数据集数据的计算方法,如可以是轮廓系数的计算方法。在一些情况下,也可以是其他复杂算法。
据测算,无论是单独使用第一预设内存优化机制、或者单独使用第二预设内存优化机制,在对数据集数据进行处理时,内存的占用率大为降低,内存出错的问题出现频率大大降低。而同时使用两种内存优化机制时,内存的优化效果更加明显。
步骤S10-S50中,获取待处理的数据集,所述数据集用于聚类分析,以得到数据样本。判断所述数据集的数据处理量是否大于预设阈值,以初步评估数据集的计算量。若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制,以采取适当的优化机制,提高对数据集的处理能力。根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤,以执行相应的内存优化机制。根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果,以完成对数据集的处理,获得需要得到的计算结果,减少在大规模数据计算时的出错,确保获得需要的计算结果,同时减少计算时长。
可选的,如图3所示,步骤S40包括:
S401、根据所述数据处理量确定若干个待选数据类型;
S402、接收数据类型修改指令,以从所述若干个待选数据类型中选出一个指定数据类型;
S403、根据所述数据类型修改指令将所述数据集中的样本的预设数据类型修改为所述指定数据类型,所述指定数据类型的数据长度低于所述预设数据类型。
本实施例中,可以通过修改数据集的样本的预设数据类型,以实现减少内存的开销。首先,可以根据数据集的数据处理量匹配多个不同的待选数据类型。例如,若一个数据集的数据处理量较大,则匹配的待选数据类型的精度较小,这样的待选数据类型可以是float16、float8;反之,若一个数据集的数据处理量较小,则匹配的待选数据类型的精度较大,这样的待选数据类型可以是float64、float32。用户可以根据实际需要,从待选数据类型中选取一个指定数据类型。则在对数据集进行处理时,数据集内的所有样本均以该指定数据类型存储在内存内。
在一实例中,数据集中的样本存储在np.array中。在Python3中,np.array默认存储浮点型数据类型为float64,每个浮点型元素占用8个字节。因而,可通过数据类型修改指令,将np.array的存储浮点型数据类型为float16,每个浮点型元素占用2个字节。这样,数据集样本所占用的内存仅为原有的四分之一,甚至更低。
在上一实施例中,利用memory_profiler模块中的profile包记录改进前以及改进后相同数据集的内存占用情况,具体如表1所示。
表1改进前以及改进后相同数据集的内存占用情况
Figure BDA0002384102100000081
从表1可以看出,通过执行第一预设内存优化机制,可以减少数据集样本的内存占用,节省宝贵的内存资源。
步骤S401-S403中,根据所述数据处理量确定若干个待选数据类型,以匹配多个待选数据类型,便于用户从中选取最终的数据类型(即指定数据类型)。接收数据类型修改指令,以从所述若干个待选数据类型中选出一个指定数据类型,以获取用户的选择信息。根据所述数据类型修改指令将所述数据集中的样本的预设数据类型修改为所述指定数据类型,所述指定数据类型的数据长度低于所述预设数据类型,以完成对数据类型的修改。
可选的,如图4所示,步骤S40还包括:
S404、加载与所述预设数据计算方法适配的内存检测进程;
S405、在执行所述预设数据计算方法中的所述循环计算步骤时,通过所述内存检测进程检测所述循环计算步骤产生的内存泄露;
S406、通过内存回收进程回收所述内存泄露占用的内存空间。
本实施例中,预设数据计算方法可以基于Python算法实现。Python垃圾回收机制是懒惰的,特别是for循环中的变量结束后不会马上回收空间,如果出现新的变量会重新开辟新的空间。因而,可加载内存检测进程,如gc.set_debug(gc.DEBUG_LEAK),检查循环计算步骤产生的内存泄露,然后再用内存回收进程,如gc.collect(),进行内存回收,优化内存空间。由于预设数据计算方法中包含大量的循环计算,因而通过内存回收机制节省的内存空间是非常可观的。
在一实施例中,测量未利用gc算法包(包括上述内存检测进程和内存回收进程)回收临时内存时内存的占用峰值,以及利用gc算法包回收临时内存时内存的占用峰值,具体如表2所示。
表2执行内存回收机制前后的内存占用情况
Figure BDA0002384102100000091
从表2可以看出,通过执行内存回收机制,可以减少内存泄露所产生的内存占用,节省宝贵的内存资源。
步骤S404-S406中,加载与所述预设数据计算方法适配的内存检测进程,以实时检测预设数据计算方法使用内存的状况。在执行所述预设数据计算方法中的所述循环计算步骤时,通过所述内存检测进程检测所述循环计算步骤产生的内存泄露,以识别出对处理结果没有作用的冗余对象。通过内存回收进程回收所述内存泄露占用的内存空间,以回收宝贵的内存资源。
可选的,如图5所示,步骤S20之前,还包括:
S21、根据所述数据集的数据处理量和所述预设数据计算方法确定预估占用内存资源值;
S22、获取当前的可用内存资源值,根据所述预估占用内存资源值和所述可用内存资源值确定所述预设阈值。
本实施例中,预设阈值可以随着设备的不同进行更改。例如,内存256G的服务器配置对应的预设阈值,与内存16G的服务器配置对应的预设阈值是不相同。预估占用内存资源值与数据集的数据处理量呈正相关,样本数量越多,预估占用内存资源值越高。预估占用内存资源值与预设数据计算方法的复杂性呈正相关,复杂性越高,预估占用内存资源值越高。当前的可用内存资源值指的是当前的硬件资源所能提供的计算资源。在一些情况下,可通过预设公式计算预设阈值。如,
Figure BDA0002384102100000101
其中,T为预设阈值,x为数据集的数据处理量,s0为可用内存资源值,s1为预估占用内存资源值,ω为常数因子。
步骤S21-S22中,根据所述数据集的数据处理量和所述预设数据计算方法确定预估占用内存资源值,以计算出实际需要占用的内存资源值。获取当前的可用内存资源值,根据所述预估占用内存资源值和所述可用内存资源值确定所述预设阈值,以确定合适的阈值,以更灵活地处理数据集,提高处理效率。
可选的,如图6所示,步骤S40还包括:
S407、根据所述数据处理量确定若干个所述预设参数的待选设置值,所述预设参数用于设置所述数据集的距离矩阵的占用内存;
S408、接收预设参数修改指令,以从所述若干个待选设置值中选出指定设置值;
S409、根据所述预设参数修改指令将预设数据计算方法的预设参数的值修改为所述指定设置值。
本实施例中,不同的数据处理量可以与多个待选设置值关联。数据处理量较高,则预设参数关联的待选设置值较大,数据处理量较低,则预设参数关联的待选设置值较小。可以自动推荐若干个与当前数据处理量匹配的待选设置值,然后由用户确定最佳的一个待选设置值,即为指定设置值。
用户可以通过输入预设参数修改指令,以对数据集的距离矩阵的占用内存进行设置,确定指定设置值。预设数据计算方法在计算数据集的轮廓系数过程中,需要计算数据集的距离矩阵。以该预设数据计算方法在Python中计算为例,可以加载算法包sklearn.metrics.pairwise中的pairwise_distances_chunked函数,并使用该函数对数据集的距离矩阵进行计算。在未修改预设参数的值时,pairwise_distances_chunked函数对距离矩阵的默认最大内存设置值(即预设参数的值)是1GB。然而,对于数据处理量大于预设阈值的数据集而言,其所需占用的内存空间远远大于默认最大内存设置值。因而,pairwise_distances_chunked函数在对数据集的距离矩阵进行计算时,需要将距离矩阵分割为若干个小的子矩阵,这样的处理加大了距离矩阵的计算量,增加了计算时长。而通过修改pairwise_distances_chunked函数的设置值,可以减少距离矩阵对内存的占用,并同时减少数据处理量,提高计算速度。
在一实施例中,通过修改距离矩阵的可用最大内存,并测量改进前和改进后距离矩阵的计算耗时,具体如表3所示。
表3调整距离矩阵可用最大内存前后的计算耗时
Figure BDA0002384102100000121
从表3可以看出,通过修改距离矩阵的可用最大内存,可以大大减少计算耗时,提高计算效率。
步骤S407-S409中,根据所述数据处理量确定若干个所述预设参数的待选设置值,所述预设参数用于设置所述数据集的距离矩阵的占用内存,以匹配多个待选设置值,便于用户从中选取最终的设置值(即指定设置值)。接收预设参数修改指令,以从所述若干个待选设置值中选出指定设置值,以获取用户的选择信息。根据所述预设参数修改指令将预设数据计算方法的预设参数的值修改为所述指定设置值,以完成对预设参数的设置值的修改。
可选的,如图7所示,步骤S20之前,还包括:
S201、获取所述数据集的样本数量和样本维度;
S202、根据所述数据集的样本数量和样本维度确定所述数据集的数据处理量。
本实施例中,数据集的数据处理量主要受到两个方面的影响,一个是数据集的样本数量,另一个是样本维度。数据集的数据处理量与样本数量呈正相关,与样本维度呈正相关。在实际的计算过程中,样本数量会直接影响数据集对内存空间的占用,并影响距离矩阵对内存空间的占用。而样本维度对数据集对内存空间的占用会产生一定的影响,但对距离矩阵占用内存的影响较小。若样本集的样本数量和样本维度均相同,而预设数据计算方法不同,其数据处理量也可以是不同的。
步骤S201-S202中,获取所述数据集的样本数量和样本维度,以提取出用于评估数据集的数据处理量的关键参数。根据所述数据集的样本数量和样本维度确定所述数据集的数据处理量,以根据数据处理量确定是否需要调整预设数据计算方法(即第二预设内存优化机制)或修改数据集样本的数据类型(即第一预设内存优化机制)。
可选的,所述预设数据计算方法用于计算所述数据集的聚类结果的轮廓系数。
本实施例中,特别的,预设数据计算方法可以是用于计算数据集的聚类结果的轮廓系数。轮廓系数(Silhouette Coefficient)是结合了聚类的凝聚度(Cohesion)和分离度(Separation)来评价聚类的效果。轮廓系数的取值范围:[-1,1],值越大,说明聚类效果越好。具体定义如下:
公式:
Figure BDA0002384102100000131
其中,b(i)表示分离度,用于量化样本i到簇间的样本的平均距离;a(i)表示凝聚度,用于量化样本i到簇内的样本的平均距离;所有样本的s(i)的均值成为聚类结果的轮廓系数。当a(i)<b(i)时,
Figure BDA0002384102100000132
当a(i)=b(i)时,s(i)=0;当a(i)>b(i)时,
Figure BDA0002384102100000133
因此,轮廓系数的取值范围:[-1,1],值越大,说明聚类效果越好。
轮廓系数用于评估无监督聚类算法的效果以及聚类过程中簇的个数的确定。由于轮廓系数具有O(n2)的时间复杂度,因而,在计算轮廓系数时,会占用大量的内存资源。当硬件设备的内存资源无法满足轮廓系数的计算需求时,则会出现内存错误,导致轮廓系数的计算失败。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种内存数据优化装置,该内存数据优化装置与上述实施例中内存数据优化方法一一对应。如图8所示,该内存数据优化装置包括获取模块10、判断模块20、获取机制模块30、计算优化模块40和获取结果模块50。各功能模块详细说明如下:
获取模块10,用于获取待处理的数据集,所述数据集用于聚类分析;
判断模块20,用于判断所述数据集的数据处理量是否大于预设阈值;
获取机制模块30,用于若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
计算优化模块40,用于根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
获取结果模块50,用于根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
可选的,计算优化模块40包括:
匹配数据类型单元,用于根据所述数据处理量确定若干个待选数据类型;
选择数据类型单元,用于接收数据类型修改指令,以从所述若干个待选数据类型中选出一个指定数据类型;
修改数据类型单元,用于根据所述数据类型修改指令将所述数据集中的样本的预设数据类型修改为所述指定数据类型,所述指定数据类型的数据长度低于所述预设数据类型。
可选的,计算优化模块40包括:
加载进程单元,用于加载与所述预设数据计算方法适配的内存检测进程;
内存检测单元,用于在执行所述预设数据计算方法中的所述循环计算步骤时,通过所述内存检测进程检测所述循环计算步骤产生的内存泄露;
内存回收单元,用于通过内存回收进程回收所述内存泄露占用的内存空间。
可选的,判断模块20包括:
确定内存资源单元,用于根据所述数据集的数据处理量和所述预设数据计算方法确定预估占用内存资源值;
确定预设阈值单元,用于获取当前的可用内存资源值,根据所述预估占用内存资源值和所述可用内存资源值确定所述预设阈值。
可选的,计算优化模块40包括:
设置值匹配单元,用于根据所述数据处理量确定若干个所述预设参数的待选设置值,所述预设参数用于设置所述数据集的距离矩阵的占用内存;
选择设置值单元,用于接收预设参数修改指令,以从所述若干个待选设置值中选出指定设置值;
参数修改单元,用于根据所述预设参数修改指令将预设数据计算方法的预设参数的值修改为所述指定设置值。
可选的,判断模块20还包括:
获取数据参数单元,用于获取所述数据集的样本数量和样本维度;
确定数据处理量单元,用于根据所述数据集的样本数量和样本维度确定所述数据集的数据处理量。
关于内存数据优化装置的具体限定可以参见上文中对于内存数据优化方法的限定,在此不再赘述。上述内存数据优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储涉及内存数据优化方法的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种内存数据优化方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取待处理的数据集,所述数据集用于聚类分析;
判断所述数据集的数据处理量是否大于预设阈值;
若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待处理的数据集,所述数据集用于聚类分析;
判断所述数据集的数据处理量是否大于预设阈值;
若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种内存数据优化方法,其特征在于,包括:
获取待处理的数据集,所述数据集用于聚类分析;
判断所述数据集的数据处理量是否大于预设阈值;
若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
2.如权利要求1所述的内存数据优化方法,其特征在于,所述根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,包括:
根据所述数据处理量确定若干个待选数据类型;
接收数据类型修改指令,以从所述若干个待选数据类型中选出一个指定数据类型;
根据所述数据类型修改指令将所述数据集中的样本的预设数据类型修改为所述指定数据类型,所述指定数据类型的数据长度低于所述预设数据类型。
3.如权利要求1所述的内存数据优化方法,其特征在于,所述根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,包括:
加载与所述预设数据计算方法适配的内存检测进程;
在执行所述预设数据计算方法中的所述循环计算步骤时,通过所述内存检测进程检测所述循环计算步骤产生的内存泄露;
通过内存回收进程回收所述内存泄露占用的内存空间。
4.如权利要求1所述的内存数据优化方法,其特征在于,所述数据集的数据处理量判断所述数据集的数据处理量是否大于预设阈值之前,还包括:
根据所述数据集的数据处理量和所述预设数据计算方法确定预估占用内存资源值;
获取当前的可用内存资源值,根据所述预估占用内存资源值和所述可用内存资源值确定所述预设阈值。
5.如权利要求1所述的内存数据优化方法,其特征在于,所述根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,包括:
根据所述数据处理量确定若干个所述预设参数的待选设置值,所述预设参数用于设置所述数据集的距离矩阵的占用内存;
接收预设参数修改指令,以从所述若干个待选设置值中选出指定设置值;
根据所述预设参数修改指令将预设数据计算方法的预设参数的值修改为所述指定设置值。
6.如权利要求1所述的内存数据优化方法,其特征在于,所述判断所述数据集的数据处理量是否大于预设阈值之前,还包括:
获取所述数据集的样本数量和样本维度;
根据所述数据集的样本数量和样本维度确定所述数据集的数据处理量。
7.一种内存数据优化装置,其特征在于,包括:
获取模块,用于获取待处理的数据集,所述数据集用于聚类分析;
判断模块,用于判断所述数据集的数据处理量是否大于预设阈值;
获取机制模块,用于若所述数据集的数据处理量大于预设阈值,则获取第一预设内存优化机制和\或第二预设内存优化机制;
计算优化模块,用于根据所述第一预设内存优化机制修改所述数据集中的所有样本的数据类型,和\或,根据所述第二预设内存优化机制修改预设数据计算方法的内存回收机制和\或预设参数,所述预设数据计算方法包括若干个循环计算步骤;
获取结果模块,用于根据所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对所述数据集进行处理,获得所述计算结果;或,根据已修改内存回收机制和\或预设参数的所述预设数据计算方法对已修改数据类型的所述数据集进行处理,获得所述计算结果。
8.如权利要求7所述的内存数据优化装置,其特征在于,所述计算优化模块包括:
匹配数据类型单元,用于根据所述数据处理量确定若干个待选数据类型;
选择数据类型单元,用于接收数据类型修改指令,以从所述若干个待选数据类型中选出一个指定数据类型;
修改数据类型单元,用于根据所述数据类型修改指令将所述数据集中的样本的预设数据类型修改为所述指定数据类型,所述指定数据类型的数据长度低于所述预设数据类型。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述内存数据优化方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述内存数据优化方法。
CN202010092300.2A 2020-02-14 2020-02-14 内存数据优化方法、装置、计算机设备及存储介质 Pending CN111400030A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010092300.2A CN111400030A (zh) 2020-02-14 2020-02-14 内存数据优化方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010092300.2A CN111400030A (zh) 2020-02-14 2020-02-14 内存数据优化方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN111400030A true CN111400030A (zh) 2020-07-10

Family

ID=71430302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010092300.2A Pending CN111400030A (zh) 2020-02-14 2020-02-14 内存数据优化方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111400030A (zh)

Similar Documents

Publication Publication Date Title
US9037518B2 (en) Classifying unclassified samples
CN110941424B (zh) 编译参数优化方法、装置及电子设备
CN109685092B (zh) 基于大数据的聚类方法、设备、存储介质及装置
CN106991325B (zh) 一种软件漏洞的防护方法和装置
JP2019511773A (ja) サービス・パラメータ選択方法及び関連するデバイス
CN110928739A (zh) 一种进程监控方法、装置以及计算设备
CN110688168A (zh) 提高应用程序启动速度方法、装置、设备及存储介质
CN112434308A (zh) 应用漏洞检测方法、装置、电子设备及计算机存储介质
CN116664335B (zh) 基于智能监控的半导体生产系统运行分析方法及系统
CN105740111A (zh) 一种性能检测方法及装置
CN116136950B (zh) 芯片验证方法、装置、系统、电子设备及存储介质
CN111400030A (zh) 内存数据优化方法、装置、计算机设备及存储介质
CN110084476B (zh) 案件调整方法、装置、计算机设备和存储介质
CN116935280A (zh) 一种基于视频分析的行为预测方法及系统
CN112749003A (zh) 系统优化的方法、设备及计算机可读存储介质
CN110795308A (zh) 一种服务器检验方法、装置、设备及存储介质
US9904660B1 (en) Nonparametric method for measuring clustered level of time rank in binary data
CN109582572A (zh) 一种判断可管理程序在多次执行中进入稳定阶段的方法
CN114860608A (zh) 基于场景构建的系统自动化测试方法、装置、设备及介质
CN114785616A (zh) 数据风险检测方法、装置、计算机设备及存储介质
CN111324532B (zh) 一种并行计算软件的mpi参数确定方法、装置及设备
CN112580869A (zh) 一种业务优化方法、装置及设备
CN113297249A (zh) 慢查询语句的识别和分析、查询语句的统计方法及装置
CN113722203A (zh) 程序测试方法及装置、电子设备和计算机可读存储介质
CN117827710B (zh) 基于ai芯片的dma带宽确定方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination