一种程序性能检测方法、系统、设备及存储介质与流程

文档序号:18009475发布日期:2019-06-25 23:49阅读:194来源:国知局
一种程序性能检测方法、系统、设备及存储介质与流程

本发明涉及程序性能质量评估技术领域,具体涉及一种程序性能检测方法、系统、设备及存储介质。



背景技术:

当前各个行业在开发、实施各种业务类应用程序时,往往有以下两大痛点:一、程序的性能质量无法评估和考核;二、程序所需的系统资源无法精确评估。

程序的性能质量主要包括程序的代码结构质量、代码逻辑质量、数据结构质量等。当前的现状是:使用方通常能够轻易确认功能需求是否已(由开发者)实现,但难以确认为实现这些功能,其后台的代码质量、结构质量是否合理,是否造成了其他方面的影响。从而使程序上线之后,因性能质量不佳,为使用者带来的风险和经济损失。

另外,当前,每个程序投入真实运营中之前,无法较为精确的评估程序所需要的各种系统资源(如计算资源cpu、内存大小、i/o输入输出速度、存储容量等)的数量,从而使企业在部署这些程序时,要么资源过多造成了较大的设备浪费,要么资源不足,影响上线之后的系统性能。



技术实现要素:

本发明实施例的目的在于提供一种程序性能检测方法、系统、设备及存储介质,用以解决目前业务类应用程序性能检测无法评估程序性能质量以及无法精确评估程序所需的系统资源的问题。

为实现上述目的,本发明实施例提供了一种程序性能检测方法,所述检测方法包括:预定短时间内周期性扫描业务类程序系统业务数据源端各类关系型数据库自身内存的性能视图信息;对扫描到的信息按照预先存放在算法库中的逻辑进行数据加工;利用加工过的数据与预先设置的各类关系型数据库对应的检测项指标的推荐值进行比对;及获得预定周期时间段内程序性能质量评估结果并进行可视化展示。

进一步地,所述性能视图信息包括各类关系型数据库中的各项性能计数器详细记录的各项运行指标和数据库状态信息。

进一步地,所述各类关系型数据库性能视图信息的数据加工类型包括:一级数据加工,对扫描到的原始数据进行时间切片,获得某一运行时间段内的信息数据的检测项指标;二级数据加工,对一级数据加工后的数据进行各种算法计算,从而获得直观的检测项指标;和三级数据加工,对二级数据加工后的数据进行各种算法计算,从而获得直观的检测项指标。

进一步地,所述关系型数据库、所述检测项指标以及数据加工类型的对应关系如下表所示:

进一步地,所述检测方法适用于业务类程序系统应用软件的全生命周期,在业务类程序系统软件研发和运维的不同阶段,所述检测方法有不同的着重点,其包括:开发后期/测试前期阶段,进行源程序性能质量评估,对源程序自身的执行逻辑和语句解析性能进行精确性能质量评估,确保实现程序代码自身的高质量;压力测试/试运行阶段,进行压力测试/试运行阶段性能质量评估,在前期源程序质量已优化的基础上,通过规范的程序压力测试或试运行,利用程序的执行逻辑、语句解析性能、查询性能和事务等待检测维度的各检测项指标,精确的评估出程序在预计的环境压力下的性能质量表现和系统资源需求;及实际运行阶段,进行实际生产环境性能质量评估,关注程序性能质量评估中的所有检查项进行持续的评估与观测,实现真实复杂环境下的持续优化调整。

进一步地,所述业务类程序系统应用软件的全生命周期的不同阶段与所述检测项指标之间的对应关系如下表所示:

其中,打勾项为该阶段重点检测指标。

本发明实施例的另外一方面,还提供的一种程序性能检测系统,所述检测系统包括:信息扫描模块,用于预定短时间内周期性扫描业务类程序系统业务数据源端各类关系型数据库自身内存的性能视图信息;数据加工模块,用于对扫描到的信息按照预先存放在算法库中的逻辑进行数据加工;指标比对模块,用于利用加工过的数据与预先设置的各类关系型数据库对应的检测项指标的推荐值进行比对;及结果展示模块,用于对比对获得的预定周期时间段内程序性能质量评估结果进行可视化展示。

进一步地,所述数据加工模块包括:一级数据加工单元,用于对扫描到的原始数据进行时间切片的一级数据加工,获得某一运行时间段内的信息数据的检测项指标;二级数据加工单元,用于对一级数据加工后的数据进行各种算法计算的二级数据加工,从而获得直观的检测项指标;和三级数据加工单元,对二级数据加工后的数据进行各种算法计算的三级数据加工,从而获得直观的检测项指标。

本发明实施例的另外一方面,还提供了一种计算机设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的方法。

本发明实施例的另外一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令用于执行如上所述的方法。

本发明实施例具有如下优点:

本发明实施例借助保存在数据库内存性能视图中的原始运行数据的定期扫描,通工加工分析,对业务类应用程序实现了程序性能质量评估和考核,另外,本发明对程序性能质量的评估是覆盖程序的整个生命周期的,包括:开发后期/测试前期阶段、压力测试/试运行阶段以及实际运行阶段,尤其对程序所需的系统资源实现了精确评估。

附图说明

为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。

图1为本发明实施例提供的一种程序性能检测系统的逻辑结构示意图。

图2为本发明实施例提供的一种程序性能检测方法的流程框图。

1-信息扫描模块、2-数据加工模块、21-一级数据加工单元、22-二级数据加工单元、23-三级数据加工单元、3-指标比对模块、4-结果展示模块。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

本发明实施例是针对业务类应用程序,借助收集分析到的大量应用程序运行数据以及一系列指标,当被测试的软件符合这套指标时,说明该软件目前的状态是优良的。

参考图1,本发明实施例提供了一种程序性能检测系统包括:信息扫描模块1、数据加工模块2、指标比对模块3及结果展示模块4。

具体地,参考图2,本发明实施例提供了一种程序性能检测系统的程序性能检测方法包括:信息扫描模块1在预定短时间内周期性扫描业务类程序系统业务数据源端各类关系型数据库自身内存的性能视图信息并发送至数据加工模块2;数据加工模块2对扫描到的信息按照预先存放在算法库中的逻辑进行数据加工并将加工后的数据发送至指标比对模块3;指标比对模块3利用加工过的数据与预先设置的各类关系型数据库对应的检测项指标的推荐值进行比对;及结果展示模块4对比对获得的预定周期时间段内程序性能质量评估结果进行可视化展示。

本发明实施例是针对业务类程序系统的程序性能检测方法,所谓业务类程序系统即通常被称为oltp(on-linetransactionprocessing,联机事务处理),oltp旨在处理同时输入的成百上千的事务。这类系统的主要特点如下:并发性要求高并且严格的要求事务的完整、安全性;实时性要求高;支持大量并发用户定期添加和修改数据,每单个事务通常能够很快地完成,并且只需访问相对较少的数据。

本发明实施例的基本方法是借助对关系数据库性能视图中数据的定期扫描,通过分析、比对实现程序性能质量的评估。当前,几乎所有行业的业务类程序系统,其业务数据源端均是关系型数据库,如oracle数据库、sqlserver数据库、db2数据库、mysql数据库等,这些关系型数据库在自身内存的性能视图中都会详细记录数据库各项运行指标和被程序访问的细节,并在一段时间内持续保存,即,性能视图信息包括各类关系型数据库中的各项性能计数器详细记录的各项运行指标和数据库状态信息,本发明实施例正是借助这些保存在数据库内存性能视图中的原始运行数据,通工加工分析,实现性能质量的评估的。

进一步地,参考图1,本发明实施例公开的一种程序性能检测系统,其中,数据加工模块2包括:一级数据加工单元21、二级数据加工单元22和三级数据加工单元23。一级数据加工单元21、二级数据加工单元22和三级数据加工单元23分别用于进行一级数据加工、二级数据加工和三级数据加工。

涉及到程序性能检测的数据需要经过一次或多次的数据加工以使数据成为阅读的直观内容,本发明实施例采用了一级数据加工、二级数据加工和三级数据加工的三层次数据加工类型。即将获取到的大量目标数据库的原始运行数据进行时间切片、算法箍选等一系列数据加工,采样到的原始数据最多会进行三轮的箍选和加工,从而为软件前端的功能显示准备好直观明确的呈现内容,这使本发明实施例系统各项功能直观、便于专业和非专业人员阅读的核心关键。

一级数据加工:对扫描到的原始数据进行时间切片,获得某一运行时间段内的信息数据的检测项指标。由于数据库性能视图中保存的大量性能统计数据均为累积计数器,即原始数值是从数据库启动以来累积计数的结果,而程序质量的分析往往是对某一运行时间段内的分析,因此,一级数据加工实际上是对这些累积计数器的时间切片工作。举例来说:程序若以一小时为一个扫描周期,某日上午09:01扫描的数据库性能视图中登录计数器值为100000,当一小时后,10:01再次扫描时为101234,则一级数据加工实现的功能就是对这一个周期内登录数据的时间切片,即101234-100001=1234,该值就是09:01~10:01这一时间区间内,数据库的登录总次数。

二级数据加工:主要功能是对一级加工后的数据进行各种算法计算,从而获得更为直观的信息,在二级数据加工中,不同的检测项指标,其加工的算法是完全不同的,这与一级数据加工不同,一级数据加工中,各种数据主要都是做时间切片。举例:在上例中,通过一级数据加工我们获得了9:01~10:01这一时间区间内的数据库登录总次数,而二级数据加工对这一指标的需求是计算一个时间区间内的每秒登录次数,如果一个时间区间为1小时(3600秒),则计算公式为一个区间内数据库登录总次数/3600。

三级数据加工:部分指标数据,经过二级数据加工后仍可进一步加工已获得更直观的信息体现,例如:一部分时间区间内的命中率指标数据,需要在二级加工后的数据的基础上再进行一次计算才能得出,这时就会进行三级数据加工。三级数据加工就是对二级数据加工后的数据进行各种算法计算,从而获得直观的检测项指标。

总结来说,一级数据加工的工作就是对各种数据进行时间切片,这是由于各种数据库性能计数器都是累积值计数器决定的,所以要看某一时间区间内的数值就得做时间切片。而二、三级数据加工的目标都是使最终数据尽可能直观化,都是利用不同的算法对数据进行计算,如果二级加工后的数据还不够直观,那就再进行第三次数据加工。

本发明实施例最终形成的关系型数据库、检测项指标以及数据加工类型的对应关系如下表所示:

需要说明的是:上表是一个检测项指标全集。在面向不同厂商的关系型数据库时,这些检测项指标会稍有区别,即有些指标在某些数据库上是不存在或与另一种指标来体现的。

进一步地,检测项指标与推荐值及比对方法的对应关系如下表所示:

需要说明的是,推荐值适用于绝大多数程序应用,但并不是推荐值适用于所有的程序应用,一些业务类型特殊的程序,部分指标会稍有区别,所以只能叫推荐值。

本发明实施例对程序性能质量的评估是覆盖程序的整个生命周期的,软件程序的交付过程不同于实物产品,实物产品的交付可以在出厂前,简单增加一个质检环节来实现,即通过一次性的检测确定产品是否质检过关。但程序的交付往往是贯穿程序使用的整个生命周期的,每一次程序的升级或改造都可能带来新的问题,因此,对程序性能质量的评估和考核也应该覆盖程序的整个生命周期。

本发明实施例公开的检测方法适用于业务类程序系统应用软件的全生命周期,具体来说,在业务类程序系统软件研发和运维的不同阶段,所述检测方法有不同的着重点,其包括:开发后期/测试前期阶段,进行源程序性能质量评估,对源程序自身的执行逻辑和语句解析性能进行精确性能质量评估,确保实现程序代码自身的高质量;压力测试/试运行阶段,进行压力测试/试运行阶段性能质量评估,在前期源程序质量已优化的基础上,通过规范的程序压力测试或试运行,利用程序的执行逻辑、语句解析性能、查询性能和事务等待检测维度的各检测项指标,精确的评估出程序在预计的环境压力下的性能质量表现和系统资源需求;及实际运行阶段,进行实际生产环境性能质量评估,关注程序性能质量评估中的所有检查项进行持续的评估与观测,实现真实复杂环境下的持续优化调整。

进一步地,业务类程序系统应用软件的全生命周期的不同阶段与检测项指标之间的对应关系如下表所示:

其中,打勾项为该阶段重点检测指标。

本发明实施例是以结果为导向的性能评估方法。当前,各个行业所采用的各种软件质量评估和优化方法,本质上都是以过程为导向的,即通过严格的开发过程管理来验证程序开发的规范性和质量是否过关。这些方法并不能从结果上确定软件是否已达至较优化的水平,因此在现实中通过这些管理方法开发出来的软件常常与用户的真实体验相差甚远。软件的性能质量评估的结果毫无疑问应当与用户体验相一致或相接近,因此,本发明实施例中衡量性能质量的各个检测项指标,反映的是以用户体验相对应的各个维度。

另外,本发明实施例提出的一种计算机设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的方法。

另外,本发明实施例提出的一种计算机存储介质,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令用于执行如上所述的方法。

在本发明的实施例中,各个模块或系统可以是由计算机程序指令形成的处理器,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。

存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

其中,非易失性存储器可以是只读存储器(read-onlymemory,简称rom)、可编程只读存储器(programmablerom,简称prom)、可擦除可编程只读存储器(erasableprom,简称eprom)、电可擦除可编程只读存储器(electricallyeprom,简称eeprom)或闪存。

易失性存储器可以是随机存取存储器(randomaccessmemory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,简称sram)、动态随机存取存储器(dynamicram,简称dram)、同步动态随机存取存储器(synchronousdram,简称sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlinkdram,简称sldram)和直接内存总线随机存取存储器(directrambusram,简称drram)。

本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1