一种自动分析软件性能的方法及装置制造方法及图纸

技术编号:36524054 阅读:13 留言:0更新日期:2023-02-01 16:01
本发明专利技术提供了一种自动分析软件性能的方法及装置,所述方法包括:S1、下载安装对应软件编程语言的SDK,所述SDK采集和分析所述软件上的各种代码,生成性能指标数据;S2、通过客户机代理终端自动收集所述性能指标数据,并采用批量传送、数据缓存、错误重传、削峰填谷的机制将所述性能指标数据发送给云端SAAS化服务;S3、所述云端SAAS服务接收所述性能指标数据并对所述性能指标数据进行解析,生成解析结果和报表数据,进行可视化展示和持久化存储。本发明专利技术的方法能够适配多种主流编程语言,自动收集软件运行过程中的性能指标数据,并以图表或表格等方式呈现给用户,自动对数据进行分析,简化软件性能分析过程,降低软件排错成本。降低软件排错成本。降低软件排错成本。

【技术实现步骤摘要】
一种自动分析软件性能的方法及装置


[0001]本专利技术属于计算机
,具体而言属于一种自动分析软件性能的方法及装置。

技术介绍

[0002]在当下,当一款软件在生产环境出现性能瓶颈时,比较常用的方式还是通过排查日志来定位问题,这种方式不仅效率低下,而且要求开发者已经提前记录了相应的日志,否则可能需要临时修改代码添加日志再重新部署上线,并且很可能需要循环往复的重复这个操作,费时费力。
[0003]实际上,当下部分主流编程语言内置了专门用于性能分析的模块,市面上也存在一些开源或者商用的第三方软件性能分析工具,但对开发者来说使用这些工具仍有诸多限制,包括但不限于:没有统一的集成接口,较高的使用门槛和学习成本,部署麻烦不便于在生产环境中运行,展示结果不够直观且往往让开发者再次陷入复杂的指标分析的泥潭。
[0004]有鉴于此,特提出本专利技术。

技术实现思路

[0005]有鉴于此,本专利技术公开了一种自动分析软件性能的方法及装置,为分析软件性能提供标准化的集成接口,能够适配多种主流编程语言,自动收集软件运行过程中的关键性能指标数据,并直观的以图表或表格等方式呈现给用户,能够自动对数据进行分析,列出潜在的性能瓶颈并给予优化建议,简化软件性能分析过程,降低软件排错成本。
[0006]具体地,本专利技术通过以下技术方案实现:
[0007]第一方面,本专利技术公开了一种自动分析软件性能的方法,具体包括如下步骤:
[0008]S1、下载安装对应软件编程语言的SDK,所述SDK采集和分析所述软件上的各种代码,生成性能指标数据;
[0009]S2、通过客户机代理终端自动收集所述性能指标数据,并采用批量传送、数据缓存、错误重传、削峰填谷的机制将所述性能指标数据发送给云端SAAS 化服务;
[0010]S3、所述云端SAAS服务接收所述性能指标数据并对所述性能指标数据进行解析,生成解析结果和报表数据,进行可视化展示和持久化存储。
[0011]其中,SDK是一种软件开发工具包,本专利技术的SDK为本专利技术提供的一套标准的SDK接口,对每一种软件编程语言都进行了单独开发,因此能够适配多种软件编程语言,各编程语言的SDK都遵循该套标准,开发者只需学习一次,便可轻松掌握各个编程语言的SDK使用方式和集成方法,开箱即用的SDK 让用户无需编写复杂的性能指标采集和解析代码,统一的集成方式降低开发者的学习成本。
[0012]具体地,通常的编程语言都提供了一些API函数来获取程序的性能指标数据,本专利技术的SDK定时每个一段时间调用这些API函数,获取程序的性能指标数据。
[0013]进一步地,所述S3步骤中,对所述性能指标数据进行解析的方法包括:
[0014]S301、打开所述云端SAAS服务查看页面,使用应用性能监测功能,筛选一段时间内的所述性能指标数据,得到监测性能指标数据;
[0015]S302、根据所述监测性能指标数据找到异常指标,并查看所述异常指标的指标性能详情页,生成指标火焰图;
[0016]S303、根据所述指标火焰图并结合所述异常指标的实际代码定位问题代码位置,优化代码并运行。
[0017]进一步地,所述S303步骤中,所述定位问题代码位置的方法为:根据所述指标火焰图找到性能指标较差的代码。
[0018]进一步地,所述S302步骤中,对于相同的函数调用关系,在所述指标火焰图中做合并展示,对于没有直接或间接函数调用关系,在所述指标火焰图进行分支展示。
[0019]进一步地,所述S1步骤中,所述SDK采集和分析的方法包括:所述SDK 定时调用对应软件编程语言的API函数,获取所述软件的相关指标数据。
[0020]进一步地,所述S1步骤中,所述性能指标数据包括内存分配、CPU占用、 GC耗时、异常频率、锁等待时间、网络和文件IO以及程序调用堆栈。
[0021]第二方面,本专利技术公开了一种自动分析软件性能的装置,包括:
[0022]性能指标数据生成模块:下载安装对应软件编程语言的SDK,所述SDK 采集和分析所述软件上的各种代码,生成性能指标数据;
[0023]数据传输模块:通过客户机代理终端自动收集所述性能指标数据,并采用批量传送、数据缓存、错误重传、削峰填谷的机制将所述性能指标数据发送给云端SAAS化服务;
[0024]数据解析模块:所述云端SAAS服务接收所述性能指标数据并对所述性能指标数据进行解析,生成解析结果和报表数据,进行可视化展示和持久化存储。
[0025]第三方面,本专利技术公开了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述自动分析软件性能方法的步骤。
[0026]第四方面,本专利技术公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述自动分析软件性能方法的步骤。
[0027]与现有技术相比,本专利技术的有益效果在于:第一,本专利技术为开发者提供一种开箱即用的低成本集成性能分析方法,并自动收集和分析性能数据,省去开发者的大量工作,本专利技术的集成操作简单,开箱即用的SDK让用户无需编写复杂的性能指标采集和解析代码,统一的集成方式降低开发者的学习成本;第二,本专利技术的自动分析软件性能方法占用资源低,对用户业务影响小,可随时打开或关闭,适合应用于生产环境,本专利技术编程语言SDK使用低资源消耗的技术,使得对用户服务器和程序影响很小,且客户机代理终端通过削峰填谷和资源上限限制,避免占用服务器过多资源;第三,本专利技术把开发者从复杂的性能指标数据解析中解放出来,数据存储和分析完全由云端SAAS服务接管,辅以可视化界面直观呈现给开发者,开发人员只需专注优化业务代码,提高工作效率。
附图说明
[0028]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0029]图1为本专利技术实施例提供的一种自动分析软件性能的方法流程示意图;
[0030]图2为本专利技术实施例提供的一键安装客户机代理终端Data Agent命令示意图;
[0031]图3为本专利技术实施例提供的异常性能指标数据;
[0032]图4为本专利技术实施例提供的函数调用parse()性能指标数据;
[0033]图5为本专利技术实施例提供的函数调用string.length()性能指标数据;
[0034]图6为本专利技术实施例提供的函数之间并行执行、无相互调用关系示意图;
[0035]图7为本专利技术实施例提供的其他性能指标类型示意图;
[0036]图8为本专利技术实施例提供的一种自动分析软件性能的装置示意图;
[0037]图9为本专利技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0038]下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动分析软件性能的方法,其特征在于,包括如下步骤:S1、下载安装对应软件编程语言的SDK,所述SDK采集和分析所述软件上的各种代码,生成性能指标数据;S2、通过客户机代理终端自动收集所述性能指标数据,并采用批量传送、数据缓存、错误重传、削峰填谷的机制将所述性能指标数据发送给云端SAAS化服务;S3、所述云端SAAS服务接收所述性能指标数据并对所述性能指标数据进行解析,生成解析结果和报表数据,进行可视化展示和持久化存储。2.根据权利要求1所述的自动分析软件性能的方法,其特征在于,所述S3步骤中,对所述性能指标数据进行解析的方法包括:S301、打开所述云端SAAS服务查看页面,使用应用性能监测功能,筛选一段时间内的所述性能指标数据,得到监测性能指标数据;S302、根据所述监测性能指标数据找到异常指标,并查看所述异常指标的指标性能详情页,生成指标火焰图;S303、根据所述指标火焰图并结合所述异常指标的实际代码定位问题代码位置,优化代码并运行。3.根据权利要求2所述的自动分析软件性能的方法,其特征在于,所述S303步骤中,所述定位问题代码位置的方法为:根据所述指标火焰图找到性能指标较差的代码。4.根据权利要求2所述的自动分析软件性能的方法,其特征在于,所述S302步骤中,对于相同的函数调用关系,在所述指标火焰图中做合并展示,对于没有直接或间接函数调用关系,在所述指标火焰图进行分支展示。5.根据权利要求1所述的自动...

【专利技术属性】
技术研发人员:张义蒋烁淼
申请(专利权)人:上海驻云信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1