掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:37:28


数据处理方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

随着计算机技术的快速发展,软件系统的规模越来越大,软件系统的处理逻辑越来越复杂。为了保证系统稳定性,可以依赖系统日志作为故障诊断的分析依据,而若系统日志未记录有效错误信息,则会影响故障诊断效率,从而可能造成巨大经济损失。

由于动态追踪作为一种获取软件运行过程的技术,可以在不停止目标软件运行的情况下,自定义获取更细粒度的软件运行信息。因而,函数级动态追踪方法是对目标软件进行故障诊断的一种常用方式。该方法通过对目标软件中所定义的所有函数进行动态追踪,并构建函数调用树,通过比较运行时构建的函数调用树与正常状态下收集的函数调用树是否一致来确定目标软件是否发生故障。若是,则通过先序遍历的方式找到第一个不同的函数,并将其确定为故障函数。该方法的追踪精度高,但存在追踪成本高、追踪时间长的问题,影响了系统性能。

发明内容

本申请提供一种数据处理方法、装置、设备及存储介质,以兼顾函数追踪时的追踪精度、追踪成本和追踪时长,降低对系统性能的影响。

第一方面,本申请提供一种数据处理方法,包括:

获取目标软件源码的中间表示IR控制流图以及所述IR控制流图中函数的执行频率,所述函数覆盖所述IR控制流图中的至少一个基本块;

根据所述IR控制流图中的基本块信息和所述函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和所述目标优化函数的约束条件;

基于所述约束条件,利用最大最小蚁群系统MMAS算法对所述目标优化函数进行求解,得到所述IR控制流图中的目标追踪函数集合。

第二方面,本申请提供一种数据处理装置,包括:

获取模块,用于获取目标软件源码的中间表示IR控制流图以及所述IR控制流图中函数的执行频率,所述函数覆盖所述IR控制流图中的至少一个基本块;

生成模块,用于根据所述IR控制流图中的基本块信息和所述函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和所述目标优化函数的约束条件;

处理模块,用于基于所述约束条件,利用最大最小蚁群系统MMAS算法对所述目标优化函数进行求解,得到所述IR控制流图中的目标追踪函数集合。

第三方面,本申请提供了一种电子设备,包括处理器,该处理器用于调用计算机程序(也可以称为代码,或指令),以使得该电子设备实现如第一方面所述的方法。

第四方面,本申请提供了一种计算机可读存储介质,包括计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行如第一方面所述的方法。

第五方面,本申请提供了一种计算机程序产品,包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被处理器运行时,使得所述处理器执行第一方面所述的方法。

在本申请实施例中,通过获取目标软件源码被运行后的IR控制流图和IR控制流图中函数的执行频率,根据该IR控制流图中的基本块信息和函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和该目标优化函数的约束条件,最后基于该约束条件,利用最大最小蚁群系统(Max-Min Ant System,MMAS)算法对目标优化函数进行求解,得到该IR控制流图中的目标追踪函数集合。该技术方案中,利用MMAS算法求解目标优化函数得到的目标追踪函数集合,可以在满足约束条件的情况下,尽可能提高追踪精度、降低追踪成本和追踪时长,以减少对系统性能的影响。

附图说明

图1为本申请实施例适用的一种应用场景示意图;

图2为本申请第一实施例提供的数据处理方法的流程示意图;

图3为IR控制流图的一种示意图;

图4为本申请第二实施例提供的数据处理方法的流程示意图;

图5为本申请第三实施例提供的数据处理方法的流程示意图;

图6为本申请第四实施例提供的数据处理方法的流程示意图;

图7为本申请实施例提供的数据处理装置的示意性框图;

图8为本申请实施例提供的电子设备的示意性框图。

具体实施方式

使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请实施例中,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”以及任何变形,意图在于覆盖不排他的包含。

下面先对本申请实施例涉及到的相关术语进行简单解释。

1、动态追踪:一种可以在不停止目标软件正常运行情况下,自定义收集软件运行状态信息的技术。

2、中间表示(Intermediate Representation,IR):源码被编译器运行时,从源码到生成目标代码之间的中间表现形式。

3、基本块:程序被顺序执行后的语句序列,只有一个入口和一个出口,入口就是基本块的第一个语句,出口是基本块的最后一个语句。对一个基本块来说,执行时只从基本块的入口进入,从基本块的出口退出。

4、控制流图(Control Flow Graph,CFG):是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式表示一个过程内所有基本块的可能流向,也能反映一个过程的实时执行过程。

5、蚁群系统:模仿蚁群行为的非确定性多项式(Non-deterministic Polynomial,NP)问题求解系统。

随着计算机技术的快速发展,软件系统的规模越来越大,软件系统的处理逻辑越来越复杂,而人们对计算机系统的可靠性要求越来越高。因而,如何及时发现系统的故障并进行诊断是提高系统可靠性的关键。

现阶段,对于故障诊断,日志是最常用的分析依据,一旦系统出现问题,运维人员一般会第一时间查看系统日志,然后人工或使用工具进行诊断故障。但由于日志是开发人员主观设计的,运行过程中不易被动态更改,若日志未能记录有效错误信息或日志中不存在错误信息,则会影响故障诊断效率,可能造成巨大经济损失。

为了解决上述问题,引入了一种动态追踪技术,其作为一种获取软件运行过程的技术,可以在不停止目标软件运行的情况下,自定义获取更细粒度的软件运行信息,以提高故障诊断效率。

现阶段,动态追踪技术可以分为组件级动态追踪和函数级动态追踪。组件级动态追踪可以收集整个系统中所有组件构成的运行信息,即以组件为单位进行故障追踪,无法定位到实际的故障位置,存在故障诊断精度低的问题。函数级动态追踪是收集组件内部函数的运行信息,其追踪时的精细度高,但是存在追踪开销高、追踪函数选择投入大的问题。

可选的,基于动态追踪技术包括组件级动态追踪和函数级动态追踪,下述分别介绍组件级动态追踪和函数级动态追踪在实际场景中的应用以及应用时存在的问题:

例如,基于组件级追踪和定点故障注入方式的故障诊断方法:在该方法中,通过对组件内关键的通信/任务管理函数进行动态追踪,如send()/receive()/fork(),来构建请求执行时组件间的执行轨迹,也是以函数调用树的形式来建模该执行轨迹,并通过故障注入获取各种故障下的函数执行轨迹信息,来构成故障诊断数据库。这样,根据运行时构造的函数调用树与故障诊断数据库中各故障对应函数调用树的高斯距离(相似度,判断是否一类)确定组件是否发生故障并进行故障定位。在该方法中,由于故障诊断数据库的构建过程需要人工选择故障点,故障点的选择准确度强依赖于人的测试经验,存在故障点选择精度低的问题。

基于函数级追踪和树编辑距离分析的故障诊断方法:该方法通过对诊断目标中所定义的所有函数进行动态追踪,并构建函数调用树,通过比较运行时构建的函数调用树与正常状态下收集的函数调用树是否一致;若否,则通过先序遍历的方式找到运行时构建的函数调用树与正常状态下收集的函数调用树的第一个不同函数,并将其确定为故障函数。但是,该方法需要对诊断目标中所定义的所有函数进行动态追踪,会存在追踪开销大、追踪工作量大,影响系统性能的问题。

鉴于此,本申请提供了一种数据处理方法,通过获取目标软件源码被运行后的IR控制流图和IR控制流图中函数的执行频率,根据该IR控制流图中的基本块信息和函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和该目标优化函数的约束条件,最后基于该约束条件,利用最大最小蚁群系统(Max-Min Ant System,MMAS)算法对目标优化函数进行求解,得到该IR控制流图中的目标追踪函数集合。该技术方案中,利用MMAS算法求解目标优化函数得到的目标追踪函数集合,可以在满足约束条件的情况下,尽可能提高追踪精度、降低追踪成本和追踪时长,降低了对系统性能的影响。

示例性的,图1为本申请实施例适用的一种应用场景示意图。如图1所示,该应用场景可以包括相互连接的终端设备11和数据处理设备12。其中,终端设备11与数据处理设备12可以通过有线或无线方式进行通信。

可选的,在终端设备11与数据处理设备12通过无线方式通信时,该应用场景中还可以包括网络13,即,终端设备11与数据处理设备12可以通过网络13进行通信。

示例性的,终端设备11可以是具有人机交互界面的用户终端,研发人员可以在终端设备11的人机交互界面上进行软件开发,以生成目标软件源码。

可选的,终端设备11可以基于研发人员的发送指示,将生成的目标软件源码发送至数据处理设备12,以便数据处理设备12执行本申请提供的数据处理方法的程序代码,以确定出目标软件源码对应IR控制流图中的目标追踪函数集合。

可选的,终端设备11本身也可以作为数据处理设备执行本申请提供的数据处理方法的程序代码,以确定出目标软件源码对应IR控制流图中的目标追踪函数集合。

在实际应用中,数据处理设备12还可以将确定的目标追踪函数集合进行展示(在数据处理设备12具有人机交互界面时)或者发送至终端设备11进行展示,其可以根据实际场景确定,此处不作赘述。

可选的,图1所示的应用场景还可以包括数据存储设备14,该数据存储设备14既可以与终端设备11通信,也可以与数据处理设备12通信,用于存储终端设备11输出的数据和/或数据处理设备12输出的数据。

需要说明的是,附图1仅是本申请实施例适用的一种应用场景的示意图,本申请实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定,例如,在图1中,终端设备的数量可以有多个,数据存储设备14相对数据处理设备12既可以是外部存储器,也可以是内部存储器等。

在实际应用中,由于终端设备和服务器均是具有数据处理能力的处理设备,因而,上述图1所示应用场景中的数据处理设备既可以通过终端设备实现,也可以通过服务器实现,本实施例不对其进行限定。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

示例性的,图2为本申请第一实施例提供的数据处理方法的流程示意图。该数据处理方法应用于图1所示应用场景中的数据处理设备,如图2所示,该数据处理方法可以包括如下步骤:

S201、获取目标软件源码的IR控制流图以及该IR控制流图中函数的执行频率。

其中,该函数覆盖IR控制流图中的至少一个基本块。

在本申请的实施例中,当将目标软件源码加载到数据处理设备中时,数据处理设备可以利用部署的编译工具对目标软件源码进行编译,从而能够生成目标软件源码对应的中间表示(IR)。

可选的,数据处理设备中部署的编译工具例如可以是clang或LLVM,本申请实施例并不对其进行限定。

在软件的IR中,软件定义的每个函数可以由一系列基本块表示。每个基本块包含一个表示该基本块的标签、前驱基本块标签、基本块内容。因而,目标软件源码的IR可以通过基本块的形式表示成IR控制流图。

可理解,在本申请的实施例中,函数泛指IR控制流图中涉及到的函数,其可以是一个、两个或多个,具体可以根据实际场景确定,此处不作赘述。

在实际应用中,为了从IR控制流图中包括的函数中确定出目标追踪函数集合,通常情况下,该函数可以理解为IR控制流图中包括的各个函数或者所有函数,此处不作赘述。

示例性的,图3为IR控制流图的一种示意图。如图3所示,在该IR控制流图中,入口基本块为A,出口基本块为M,各基本块之间存在各种引用关系。

参照图3所示,在该IR控制流图中,以基本块C和基本块H进行解释说明。例如,基本块C的标签为60,基本块C的前驱基本块为A,其标签为42,通过基本块C中的“preds=%42”表示,基本块C的基本块内容包括“%61=load…,%62=call fun1,……,%xx=callfun2,……,br il%77,label%79,label%99”;基本块H的标签为79,基本块H的前驱基本块为C,其标签为60,通过基本块H中的“preds=%60”表示,基本块H的基本块内容包括“%80=load…,%81=call fun2,……,%xx=call fun3,……,br label%153”。

对于每个基本块中的指令,通过分析call指令可以获取函数调用关系,例如,在基本块C和基本块H都调用了fun2时,若追踪fun2,则可以覆盖基本块C和基本块H。

可选的,IR控制流图在生成过程中,每个函数的开头可部署一个插桩函数,用于采集对应函数的被执行次数。因而,在实际应用中,当数据处理设备运行目标软件源码的过程中,利用在函数中部署的插桩函数能够采集到IR控制流图中函数的执行频率。

S202、根据IR控制流图中的基本块信息和函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和所述目标优化函数的约束条件。

在本申请的实施例中,若想在保证追踪精度和控制追踪成本的前提下,从IR控制流图包括的所有函数中筛选出目标追踪函数集合,可以将目标追踪函数集合的选择建模为一个带权重阈值的最小权值集合覆盖问题(Minimum Weighted Set Coverage Problemwith Upper Bound total weight Constraint,MWSCP-UBC)。

可选的,将上述IR控制流图包括的基本块集合定义为B={b

其中,n等于IR控制流图所包括基本块的数量,m等于IR控制流图所包括函数的数量,n和m均是大于或等于1的正整数。

也即,在本实施例中,以追踪函数集合为自变量的目标优化函数是从函数集合F中选择目标追踪函数集合F′,以尽量覆盖较多的基本块,相应的,目标优化函数的约束条件是目标追踪函数集合F′所包含函数的总权重值小于或等于给定的权重阈值w

S203、基于上述约束条件,利用MMAS算法对目标优化函数进行求解,得到IR控制流图中的目标追踪函数集合。

在本实施例中,为了提高上述目标优化函数求解的效率,可以基于MMAS算法来构造上述目标优化函数(即,MWSCP-UBC优化问题)的求解算法。

可理解,MMAS算法是蚂蚁算法的优化,蚂蚁算法是一种用来在图中寻找优化路径的几率型算法,其可能会出现局部收敛的现象,致使由于在搜索过程中出现早期停滞而导致求解准确度低的问题。为了解决该问题,本申请实施例利用MMAS算法,通过限制每个函数上的信息素浓度来避免搜索的早期收敛,能够在满足上述约束条件的前提下,得到精度较高的目标追踪函数集合。

可选的,在MMAS算法中,可以定义如下变量:蚂蚁数量为N

可理解,在实际应用中,蚂蚁在每个迭代轮次中从allowed

在本申请的实施例中,在每个迭代轮次中,各个蚂蚁可以基于

本申请实施例提供的数据处理方法,在获取到目标软件源码的IR控制流图以及该IR控制流图中函数的执行频率时,根据该IR控制流图表征的基本块调用关系和函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和该目标优化函数的约束条件,最后基于该约束条件,利用MMAS算法对目标优化函数进行求解,得到IR控制流图中的目标追踪函数集合。该技术方案中,利用MMAS算法求解目标优化函数得到的目标追踪函数集合,可以在满足约束条件的情况下,尽可能提高追踪精度、降低追踪成本,降低了对系统性能的影响。

为使读者更深刻地理解本申请实施例的实现原理,下述对图2所示的实施例进行进一步细化。

示例性的,在上述实施例的基础上,图4为本申请第二实施例提供的数据处理方法的流程示意图。如图4所示,在本实施例中,上述S202可以通过如下步骤实现:

S401、根据IR控制流图中的基本块信息,确定第一参数和第二参数,该第一参数用于指示基本块是否被函数覆盖,该第二参数用于指示函数是否属于目标追踪函数集合。

在本申请的实施例中,数据处理设备可以根据IR控制流图中的基本块信息,例如,各基本块内容,确定出基本块和函数的关联信息。例如,利用第一参数表示基本块是否被函数覆盖。

示例性的,假设利用h

相应的,在本实施例中,利用c

利用变量a

可理解,在本实施例中,a

S402、根据IR控制流图中函数的执行频率和第二参数,确定该目标追踪函数集合所包含函数的总权重值。

在本实施例中,基于上述S202中记载的内容可知,函数的权重集合为W={w

示例性的,在本实施例中,该目标追踪函数集合所包含函数的总权重值可以表示为

S403、根据第一参数、目标追踪函数集合所包含函数的总权重值和预置的权重阈值,生成以目标追踪函数集合为自变量的目标优化函数,该目标优化函数的约束条件为目标追踪函数集合所包括函数的总权重值小于或等于权重阈值。

可选的,在本实施例中,为了保证追踪精度和控制追踪成本,根据基本块是否被函数覆盖、目标追踪函数集合所包含函数的总权重值和预置的权重阈值,可以将MWSCP-UBC的数学形式通过如下目标优化函数和该目标优化函数的约束条件表示,具体如下:

目标优化函数通过公式(3)表示:

其中,x表示目标追踪函数集合;δ

约束条件通过公式(4)表示:

在本申请的实施例中,根据IR控制流图中的基本块信息可确定用于指示基本块是否被函数覆盖的第一参数以及用于指示函数是否属于目标追踪函数集合的第二参数,进而根据IR控制流图中函数的执行频率和第二参数可确定该目标追踪函数集合所包含函数的总权重值,最后根据第一参数、目标追踪函数集合所包含函数的总权重值和预置的权重阈值,生成以目标追踪函数集合为自变量的目标优化函数,且目标优化函数的约束条件为目标追踪函数集合所包括函数的总权重值小于或等于权重阈值。该技术方案中,通过将追踪函数的选择问题转换为在约束条件下求解目标优化函数的数学问题,为在实际应用中兼顾追踪精度和追踪成本奠定了基础,为提高系统性能提供了实现条件。

可选的,在上述各实施例的基础上,图5为本申请第三实施例提供的数据处理方法的流程示意图。如图5所示,在本实施例中,上述S203可以通过如下步骤实现:

S501、基于IR控制流图中的基本块信息和目标优化函数,确定以MMAS算法表示的函数信息素增量公式。

在实际应用中,可以将从IR控制流图包括的函数集合中选择目标追踪函数集合的问题转换为MMAS算法中蚂蚁选择路径(函数)的问题。在本实施例中,基于上述S203中定义的各变量和目标优化函数,蚂蚁h在第t个迭代轮次中函数f

其中,Q为信息素总量,N

S502、根据该函数信息素增量公式和相邻迭代轮次间的函数信息素关系,确定函数信息素公式。

可选的,第t+1个迭代轮次中函数f

其中,ρ为信息素蒸发因子,ρ的取值范围为[0,1),1-p表示信息素的残留系数。

S503、根据该IR控制流图中函数的执行频率,确定启发函数公式。

在本申请的实施例中,在函数f

其中,w

S504、将函数信息素公式和启发函数公式代入以MMAS算法定义的概率公式,得到函数选择概率公式。

在本申请的实施例中,蚂蚁h可以根据函数的启发函数和函数上的信息素取值,从未选择(可以选择)的函数集合allowed

其中,τ

S505、基于函数信息素的预置取值区间,使用函数选择概率公式,从IR控制流图包括的函数集合中,选择满足上述约束条件的目标追踪函数集合。

可选的,为了限制某个函数上的信息素浓度过高以避免搜索的早期收敛,MMAS算法中定义了函数信息素的预置取值区间,以此限定函数上的信息素取值范围。因而,在本实施例中,数据处理设备可以在每个迭代轮次中,使得每个蚂蚁使用公式(8)所示的函数选择概率公式从IR控制流图包括的函数集合中,选择满足上述约束条件的候选函数,进而在所有的迭代轮次执行完成时,可确定出从IR控制流图包括的函数集合中选择的目标追踪函数集合。

示例性的,在MMAS中,函数f

可选的,在本申请的实施例中,该S505可以通过如下步骤实现:

A1、在MMAS算法的第t个迭代轮次中,基于约束条件,利用函数选择概率公式,执行H次函数选择过程,得到第t候选函数集合。

其中,t为大于0且小于或等于T的整数,T等于MMAS算法中定义的迭代轮次,也可以用N

在本申请的实施例中,数据处理设备可以基于MMAS算法中定义的迭代轮次和蚂蚁数据执行函数选择过程。具体的,数据处理设备可以基于MMAS算法执行T个迭代轮次,并在每个迭代轮次中,在保证已选函数集合满足约束条件的前提下执行H个函数选择过程,最后得到目标函数集合。

例如,在MMAS算法的第t个迭代轮次中,控制每个蚂蚁依次根据上述确定的函数选择概率公式(8)通过轮盘赌的形式从每个蚂蚁可选择的函数集合中选择候选函数,然后判断选择该候选函数后的权重总值是否仍满足上述约束条件,若是,则将最后一个蚂蚁选择后得到的函数集合确定第t候选函数集合。

在本申请的一种可能实现方式中,基于约束条件,利用函数选择概率公式,执行H次函数选择过程,得到第t候选函数集合,可以包括:

首先在第h次函数选择过程中,确定IR控制流图中的已选函数集合和未选函数集合,h为大于0且小于或等于H的整数,然后在已选函数集合所包括函数的第一权重总值小于权重阈值时,利用函数选择概率公式,从未选函数集合中选择第一函数,响应于第一函数的权重值和第一权重总值之和小于或等于权重阈值,将第一函数添加至所述已选函数集合,得到更新函数集合,并确定以已选函数集合为追踪对象时的第一函数取值是否小于以更新函数集合为追踪对象时的第二函数取值;响应于第二函数取值小于第一函数取值,则利用更新函数集合更新已选函数集合,最后将执行H次函数选择过程后得到的已选函数集合,确定为第t候选函数集合。

可选的,在第h次函数选择过程开始时,首先确定出当前的已选函数集合和未选函数集合,然后计算已选函数集合所包括函数的第一权重总值,判断该第一权重总值是否小于权重阈值,若是,则利用上述确定的函数选择概率公式(8)通过轮盘赌的形式从未选函数集合中选择第一函数,并将第一函数的权重值与第一权重总值进行叠加,判断叠加之后的权重总值是否小于或等于权重阈值,若是,确定该第一函数为该第h次函数选择过程中的可选择函数,并更新上述的已选函数集合。通过该方式执行H次函数选择过程,便可得到在第t个迭代轮次中确定的第t候选函数集合。

A2、根据函数信息素公式和函数信息素增量公式,更新第t个迭代轮次中的第t函数信息素增量值和第t函数信息素取值。

在本实施例中,在第t个迭代轮次中执行完毕后,可以利用上述的函数信息素增量公式(5)和函数信息素公式(6)计算第t个迭代轮次中的第t函数信息素增量值Δτ

A3、响应于第t函数信息素取值未在预置取值区间内时,对第t函数信息素取值进行处理,以使得更新后的第t函数信息素取值位于预置取值区间。

其中,上述第t函数信息素增量值和更新后的第t函数信息素取值用于在第t+1个迭代轮次中确定函数信息素。

可选的,在确定出第t函数信息素取值后,可以判断第t函数信息素取值是否位于预置取值区间内,若是,则第t函数信息素取值保持不变,若否,则对第t函数信息素取值进行处理,以使得更新后的第t函数信息素取值位于预置取值区间。

作为一种示例,若第t函数信息素取值小于预置取值区间的下限值,则利用下限值更新第t函数信息素取值,例如,将下限值赋值给该第t函数信息素取值。

作为另一种示例,若第t函数信息素取值大于预置取值区间的上限值,则利用该上限值更新第t函数信息素取值,例如,将该上限值赋值给该第t函数信息素取值。

可选的,在第t+1个迭代轮次,可以将更新后的第t函数信息素取值和第t函数信息素增量值代入公式(6),便可以得到在第t+1个迭代轮次中使用第t+1函数信息素取值。

A4、在MMAS算法被执行T个迭代轮次时,根据目标优化函数和在第T个迭代轮次中确定的第T候选函数集合,确定满足该预置取值区间的目标追踪函数集合。

可选的,数据处理设备可以基于A1至A3所述的方法执行T个迭代轮次,得到在第T个迭代轮次中确定的第T候选函数集合,进而判断该第T候选函数集合是否满足上述公式(3)表示的目标优化函数和上述公式(4)表示的约束条件。

示例性的,在本申请的实施例中,在MMAS算法被执行T个迭代轮次时,可以根据目标优化函数,计算以第T候选函数集合为追踪对象时的第三函数取值,确定该第三函数取值是否小于或等于在第T-1个迭代轮次中确定的第四函数取值,响应于第三函数取值小于或等于第四函数取值,利用第T候选函数集合更新在第T-1个迭代轮次中确定的第T-1候选函数集合,并将第T候选函数集合确定为目标追踪函数集合。

可选的,在MMAS算法被执行T个迭代轮次时,可以将第T候选函数集合代入上述公式(3)表示的目标优化函数,得到以第T候选函数集合为追踪对象时的第三函数取值。假设在第T-1个迭代轮次中,将第T-1候选函数集合代入上述(3)后可以得到以第T-1候选函数集合为追踪对象时的第四函数取值。这时,在得到第三函数取值后,可以将第三函数取值与第四函数取值进行比较,若第三函数取值小于或等于第四函数取值,则利用第T候选函数集合更新在第T-1个迭代轮次中确定的第T-1候选函数集合,并将第T候选函数集合确定为目标追踪函数集合;若第三函数取值大于第四函数取值,则将第T-1候选函数集合确定为目标追踪函数集合。

在本申请实施例中,基于IR控制流图中的基本块信息和目标优化函数确定以MMAS算法表示的函数信息素增量公式,根据该函数信息素增量公式和相邻迭代轮次间的函数信息素关系确定函数信息素公式,以及根据IR控制流图中函数的执行频率确定启发函数公式,随后将该函数信息素公式和启发函数公式代入以MMAS算法定义的概率公式,得到函数选择概率公式,最后基于函数信息素的预置取值区间,使用函数选择概率公式,从所述IR控制流图包括的函数集合中,选择满足约束条件的目标追踪函数集合。该技术方案中,基于MMAS算法对目标优化函数进行求解,可以在满足约束条件的情况下,尽可能提高追踪精度、降低追踪成本,提高了系统性能。

在上述各实施例的基础上,下述介绍基于MMAS算法确定目标追踪函数集合的详细实现方案。图6为本申请第四实施例提供的数据处理方法的流程示意图。如图6所示,该数据处理方法包括如下步骤:

S601、获取待使用的函数变量B,F,W,w

关于B,F,W,w

S602、判断迭代轮次t是否大于或等于1且小于或等于N

S603、判断蚂蚁数量h是否大于或等于1且小于或等于N

S604、在第t-1候选函数集合的第一权重总值小于权重阈值w

可选的,在本步骤中,在第t-1候选函数集合的第一权重总值小于权重阈值w

S605、判断第t候选函数集合的目标优化函数取值F(x)是否小于第t-1候选函数集合的目标优化函数取值F(x

S606、利用第t候选函数集合替换第t-1候选函数集合;

S607、将第t-1候选函数集合作为第t候选函数集合。

S608、利用函数信息素公式,计算第t个迭代轮次中的第t函数信息素取值。

S609、判断第t函数信息素取值是否位于预置取值区间内,若是,执行S610;若否,执行S611;

S610、保持第t函数信息素取值不变;

S611、对第t函数信息素取值进行处理,以使得更新后的第t函数信息素取值位于预置取值区间内;

S612、判断第t候选函数集合的目标优化函数取值F(x

S613、将第t候选函数集合赋给已选函数集合;

S614、将第N

S615、输出目标追踪函数集合x

可理解,上述各步骤的具体实现原理可参见上述图2至图5所示实施例中的记载,此处不作赘述。

可选的,在实际应用中,针对函数追踪的各种方案都会或多或少导致目标软件的响应时间变长,可以定义响应时间增长率(Response Time Growth Rate,RTGR)来分析不同方案对目标软件响应时间的影响情况:

可选的,表1示出了全函数追踪方法与本申请实施例提供的数据处理方法在Redis、Nginx、Httpd、SQlite上的RTGR信息,通过分析在Redis、Nginx、Httpd、SQlite四个开源软件上的实验数据,可以确定不同追踪方法的响应时间增长率,从而可确定对目标软件的影响情况。其中,在实验中,以w

表1不同追踪点选择方法下Redis、Nginx、Httpd、SQlite的RTGR

由上述分析可知,本申请实施例提出了一种基于IR控制流图和函数执行频率分析追踪函数集合的自动选择算法,能够尽量高的覆盖基本块和尽可能少的追踪开销,解决了现有技术中的追踪开销过高和追踪点需要人工选择的缺点。

图7为本申请实施例提供的数据处理装置的示意性框图。该数据处理装置可以通过电子设备实现,也可以通过电子设备中的装置实现。如图7所示,该数据处理装置可以包括:获取模块701、生成模块702和处理模块703。

其中,获取模块701,用于获取目标软件源码的中间表示IR控制流图以及所述IR控制流图中函数的执行频率,所述函数覆盖所述IR控制流图中的至少一个基本块;

生成模块702,用于根据所述IR控制流图中的基本块信息和所述函数的执行频率,生成以追踪函数集合为自变量的目标优化函数和所述目标优化函数的约束条件;

处理模块703,用于基于所述约束条件,利用最大最小蚁群系统MMAS算法对所述目标优化函数进行求解,得到所述IR控制流图中的目标追踪函数集合。

在本申请实施例的一种可能实现中,处理模块703,具体用于:

基于所述IR控制流图中的基本块信息和所述目标优化函数,确定以所述MMAS算法表示的函数信息素增量公式;

根据所述函数信息素增量公式和相邻迭代轮次间的函数信息素关系,确定函数信息素公式;

根据所述IR控制流图中函数的执行频率,确定启发函数公式;

将所述函数信息素公式和所述启发函数公式代入以所述MMAS算法定义的概率公式,得到函数选择概率公式;

基于函数信息素的预置取值区间,使用所述函数选择概率公式,从所述IR控制流图包括的函数集合中,选择满足所述约束条件的目标追踪函数集合。

可选的,处理模块703,用于基于函数信息素的预置取值区间,使用所述函数选择概率公式,从所述IR控制流图包括的函数集合中,选择满足所述约束条件的目标追踪函数集合,具体为:

处理模块703,具体用于:

在所述MMAS算法的第t个迭代轮次中,基于所述约束条件,利用所述函数选择概率公式,执行H次函数选择过程,得到第t候选函数集合;其中,t为大于0且小于或等于T的整数,T等于所述MMAS算法中定义的迭代轮次,H等于所述MMAS算法中定义的蚂蚁数量;

根据所述函数信息素公式和所述函数信息素增量公式,更新所述第t个迭代轮次中的第t函数信息素增量值和第t函数信息素取值,所述第t函数信息素增量值和所述第t函数信息素取值用于在第t+1个迭代轮次中确定函数信息素;

在所述MMAS算法被执行T个迭代轮次时,根据所述目标优化函数和在第T个迭代轮次中确定的第T候选函数集合,确定满足所述预置取值区间的目标追踪函数集合。

可选的,处理模块703,用于基于所述约束条件,利用所述函数选择概率公式,执行H次函数选择过程,得到第t候选函数集合,具体为:

处理模块703,具体用于:

在第h次函数选择过程中,确定所述IR控制流图中的已选函数集合和未选函数集合,h为大于0且小于或等于H的整数;

在所述已选函数集合所包括函数的第一权重总值小于所述权重阈值时,利用所述函数选择概率公式,从所述未选函数集合中选择第一函数;

响应于所述第一函数的权重值和所述第一权重总值之和小于或等于所述权重阈值,将所述第一函数添加至所述已选函数集合,得到更新函数集合;

确定以所述已选函数集合为追踪对象时的第一函数取值是否小于以所述更新函数集合为追踪对象时的第二函数取值;

响应于所述第二函数取值小于所述第一函数取值,则利用所述更新函数集合更新所述已选函数集合;

将执行H次函数选择过程后得到的已选函数集合,确定为所述第t候选函数集合。

可选的,处理模块703,用于在所述MMAS算法被执行T个迭代轮次时,根据所述目标优化函数和在第T个迭代轮次中确定的第T候选函数集合,确定满足所述预置取值区间的目标追踪函数集合,具体为:

处理模块703,具体用于:

在所述MMAS算法被执行T个迭代轮次时,根据所述目标优化函数,计算以第T候选函数集合为追踪对象时的第三函数取值;

确定所述第三函数取值是否小于在第T-1个迭代轮次中确定的第四函数取值;

响应于所述第三函数取值小于所述第四函数取值,利用所述第T候选函数集合更新在第T-1个迭代轮次中确定的第T-1候选函数集合;

将所述第T候选函数集合确定为所述目标追踪函数集合。

可选的,所述处理模块703还用于:

确定所述第t函数信息素取值是否在所述预置取值区间内;

响应于所述第t函数信息素取值未在所述预置取值区间内,对所述第t函数信息素取值进行处理,以使得更新后的第t函数信息素取值位于所述预置取值区间,所述第t函数信息素增量值和所述更新后的第t函数信息素取值用于在第t+1个迭代轮次中确定函数信息素。

可选的,处理模块703,用于在所述第t函数信息素取值未在所述预置取值区间内,对所述第t函数信息素取值进行处理,以使得更新后的第t函数信息素取值位于所述预置取值区间,具体为:

处理模块703,具体用于:若所述第t函数信息素取值小于所述预置取值区间的下限值,则利用所述下限值更新所述第t函数信息素取值,若所述第t函数信息素取值大于所述预置取值区间的上限值,则利用所述上限值更新所述第t函数信息素取值。

在本申请实施例的再一种可能实现中,所述生成模块702,具体用于:

根据所述IR控制流图中的基本块信息,确定第一参数和第二参数,所述第一参数用于指示基本块是否被函数覆盖,该第二参数用于指示函数是否属于目标追踪函数集合;

根据所述IR控制流图中函数的执行频率和所述第二参数,确定所述目标追踪函数集合所包含函数的总权重值;

根据所述第一参数、所述目标追踪函数集合所包含函数的总权重值和预置的权重阈值,生成以所述目标追踪函数集合为自变量的目标优化函数,所述目标优化函数的约束条件为所述目标追踪函数集合所包括函数的总权重值小于或等于所述权重阈值。

关于在本申请实施例提供的数据处理装置,用于实现上述方法实施例的技术方案,其具体实现方案和有益效果参见上述实施例中的记载,此处不做赘述。

图8为本申请实施例提供的电子设备的示意性框图。该电子设备800可以是上述图1中的数据处理设备。如图8所示,该电子设备800可以包括至少一个处理器810,可用于实现本申请提供的数据处理方法。具体参见方法示例中的详细描述,此处不做赘述。

该电子设备800还可以包括一个存储器820,用于存储程序指令和/或数据。存储器820和处理器810耦合。本申请中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器810可能和存储器820协同操作。处理器810可能执行存储器820中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。

该电子设备800还可以包括一个通信接口830,用于通过传输介质和其它设备进行通信,从而用于电子设备800中的装置可以和其它设备进行通信。所述通信接口830例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器810可利用通信接口830收发数据和/或信息,并用于实现上述实施例中数据处理方法。

本申请中不限定上述处理器810、存储器820以及通信接口830之间的具体连接介质。本申请在图8中以处理器810、存储器820以及通信接口830之间通过总线840连接。总线840在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请中公开的方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

根据本申请提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,使得处理器执行上述实施例中的技术方案。

根据本申请提供的方法,本申请还提供一种计算机程序产品,包括:计算机程序代码。当该计算机程序代码被处理器执行时,使得处理器执行上述实施例中的技术方案。

本申请提供的技术方案可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线,例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质例如,数字视频光盘(digital video disc,DVD)、或者半导体介质等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120115629800