函数执行时间的获取方法及装置制造方法及图纸

技术编号:22564695 阅读:44 留言:0更新日期:2019-11-16 11:49
本发明专利技术提供了一种函数执行时间的获取方法及装置,该方法包括:获取第一调用请求,其中,第一调用请求用于调用第一目标应用程序接口API,第一目标API中包括时间检测模块和待执行的目标函数,时间检测模块在第一目标API被调用前处于禁止被执行的状态,时间检测模块用于获取目标函数的执行时间;响应第一调用请求将时间检测模块的状态设置为允许被执行的状态;执行时间检测模块和目标函数,得到目标函数的执行时间。解决了相关技术中通过确定性分析器cProfile分析API接口耗时数据时,由于需要对存在的所有的API接口都要开启的情况下,导致API应用的使用性能降低的技术问题。

The method and device of obtaining function execution time

The invention provides a method and a device for obtaining the execution time of a function, the method comprises: obtaining a first call request, wherein the first call request is used to call the first target application program interface API, the first target API includes a time detection module and a target function to be executed, the time detection module is in a state of prohibiting execution before the first target API is called, and the time The detection module is used to obtain the execution time of the target function; in response to the first call request, the state of the time detection module is set to the state allowed to be executed; the time detection module and the target function are executed to obtain the execution time of the target function. It solves the technical problem of API application performance degradation when API time-consuming data is analyzed by determinate analyzer cprofile and all existing API interfaces need to be opened.

【技术实现步骤摘要】
函数执行时间的获取方法及装置
本专利技术涉及应用程序接口API性能测试领域,具体而言,涉及一种函数执行时间的获取方法及装置。
技术介绍
在现有技术中,通过有两种方式获取应用程序接口API(ApplicationProgrammingInterface)的耗时性能数据。其中,方式一:通过打印API接口耗时日志方式,方式二:通过确定性分析器cProfile分析API接口耗时数据。需要说明的是,采用方式一获取API接口的耗时性能数据,如图1所示,通过打印API接口耗时日志方式获取API接口的耗时性能数据的示意图。采用方式一,开发者需要在原有的API接口中插入对应的执行时间代码,通过粗略的将接口代码进行切割成不同的模块,然后得出各个模块的耗时信息,最后将这些信息打印到日志,或者是通过接口返回。即方式一中:需要针对特定的接口做出插入datetime的代码块的工作,保证不了代码的纯净,并且需要阅读源代码。采用方式二,通过cProfile分析API接口耗时性能数据,如图2所示,通过cProfile分析API接口耗时数据的示意图。采用方式二,通过cProfile方案分析API接口耗时数据,可以达到保证API接口代码的纯净,减少入侵的目的,但是方式二中,如果对所有的API接口都开启,将会严重影响应用的使用性能。通过上述的说明可以知道,目前方案主要存在以下几个问题:需要阅读源代码,并且对代码进行模块化分割,并对源代码做出一定的评估,对耗时比较长的模块可能需要再次深入的分割和分析。2)入侵源代码,因为对API接口中的代码做了一定的修改,势必会污染源代码。3)在需要对某个API接口做耗时性能数据分析,而其他API接口不需要进行耗时性能数据分析时,不能随时的进行切换。针对现有技术中,通过确定性分析器cProfile分析API接口耗时数据时,由于需要对存在的所有的API接口都要开启的情况下,导致API应用的使用性能降低的技术问题。目前尚无有效的解决方案。
技术实现思路
本专利技术实施例提供了一种函数执行时间的获取方法及装置,以至少解决相关技术中通过确定性分析器cProfile分析API接口耗时数据时,由于需要对存在的所有的API接口都要开启的情况下,导致API应用的使用性能降低的技术问题。根据本专利技术的一个实施例,提供了一种函数执行时间的获取方法,包括:获取第一调用请求,其中,所述第一调用请求用于调用第一目标应用程序接口API,所述第一目标API中包括时间检测模块和待执行的目标函数,所述时间检测模块在所述第一目标API被调用前处于禁止被执行的状态,所述时间检测模块用于获取所述目标函数的执行时间;响应所述第一调用请求将所述时间检测模块的状态设置为允许被执行的状态;执行所述时间检测模块和所述目标函数,得到所述目标函数的执行时间。进一步地,在执行所述时间检测模块和所述目标函数之后,所述方法还包括:将所述第一目标API中的所述时间检测模块的状态设置为所述禁止被执行的状态。进一步地,在所述获取第一调用请求之前,所述方法还包括:在第一初始API中增加所述时间检测模块,得到所述第一目标API,其中,所述第一初始API中包括所述待执行的目标函数。进一步地,执行所述时间检测模块和所述目标函数,得到所述目标函数的执行时间包括:在得到所述目标函数的执行时间的过程中,将所述第一目标应用程序接口API中所有目标函数的执行时间生成日志,并将所述日志保存在数据库中。进一步地,并将所述日志保存在数据库中之后,所述方法还包括:根据所述日志获取所述第一目标API中所有目标函数执行时间超过第一阈值的函数,以及超过第一阈值的函数之间的调用关系;根据所述调用关系调整所述函数,以便减少所述目标函数的执行时间。根据本专利技术的另一个实施例,提供了一种函数执行时间的获取装置,包括:获取单元,获取第一调用请求,其中,所述第一调用请求用于调用第一目标应用程序接口API,所述第一目标API中包括时间检测模块和待执行的目标函数,所述时间检测模块在所述第一目标API被调用前处于禁止被执行的状态,所述时间检测模块用于获取所述目标函数的执行时间;响应单元,用于;得到单元,用于执行所述时间检测模块和所述目标函数,得到所述目标函数的执行时间。进一步地,所述装置还包括:设置单元,用于在执行所述时间检测模块和所述目标函数之后,将所述第一目标API中的所述时间检测模块的状态设置为所述禁止被执行的状态。进一步地,所述装置还包括:添加单元,用于在所述获取第一调用请求之前,在第一初始API中增加所述时间检测模块,得到所述第一目标API,其中,所述第一初始API中包括所述待执行的目标函数。根据本专利技术的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项函数执行时间的获取方法实施例中的步骤。根据本专利技术的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项函数执行时间的获取方法实施例中的步骤。通过本专利技术,获取第一调用请求,其中,第一调用请求用于调用第一目标应用程序接口API,第一目标API中包括时间检测模块和待执行的目标函数,时间检测模块在第一目标API被调用前处于禁止被执行的状态,时间检测模块用于获取目标函数的执行时间;响应第一调用请求将时间检测模块的状态设置为允许被执行的状态;执行时间检测模块和目标函数,得到目标函数的执行时间。解决了相关技术中通过cProfile方案分析API接口耗时数据时,由于需要对存在的所有的API接口都要开启的情况下,导致API应用的使用性能降低的技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是现有技术中通过打印API接口耗时日志方式获取API接口的耗时性能数据的示意图;图2是现有技术中通过cProfile分析API接口耗时数据的示意图;图3是本专利技术实施例的一种函数执行时间的获取方法的移动终端的硬件结构框图;图4是根据本专利技术实施例的一种函数执行时间的获取方法的流程图;图5根据本专利技术优先实施例中提供的一种指定API接口进行cProfile分析耗时性能数据的结构框架示意图;图6是根据本专利技术优先实施例中某个cProfile分析保存的API接口耗时时间文件的示意图;图7是根据本专利技术优先实施例中提供的一种对指定API接口进行cProfile分析的耗时性能数据的流程示意图;图8是根据本专利技术实施例的函数执行时间的获取装置的结构框图。具体实施方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“本文档来自技高网
...

【技术保护点】
1.一种函数执行时间的获取方法,其特征在于,包括:/n获取第一调用请求,其中,所述第一调用请求用于调用第一目标应用程序接口API,所述第一目标API中包括时间检测模块和待执行的目标函数,所述时间检测模块在所述第一目标API被调用前处于禁止被执行的状态,所述时间检测模块用于获取所述目标函数的执行时间;/n响应所述第一调用请求将所述时间检测模块的状态设置为允许被执行的状态;/n执行所述时间检测模块和所述目标函数,得到所述目标函数的执行时间。/n

【技术特征摘要】
1.一种函数执行时间的获取方法,其特征在于,包括:
获取第一调用请求,其中,所述第一调用请求用于调用第一目标应用程序接口API,所述第一目标API中包括时间检测模块和待执行的目标函数,所述时间检测模块在所述第一目标API被调用前处于禁止被执行的状态,所述时间检测模块用于获取所述目标函数的执行时间;
响应所述第一调用请求将所述时间检测模块的状态设置为允许被执行的状态;
执行所述时间检测模块和所述目标函数,得到所述目标函数的执行时间。


2.根据权利要求1所述的方法,其特征在于,在执行所述时间检测模块和所述目标函数之后,所述方法还包括:
将所述第一目标API中的所述时间检测模块的状态设置为所述禁止被执行的状态。


3.根据权利要求1所述的方法,其特征在于,在所述获取第一调用请求之前,所述方法还包括:
在第一初始API中增加所述时间检测模块,得到所述第一目标API,其中,所述第一初始API中包括所述待执行的目标函数。


4.根据权利要求1所述的方法,其特征在于,执行所述时间检测模块和所述目标函数,得到所述目标函数的执行时间包括:
在得到所述目标函数的执行时间的过程中,将所述第一目标应用程序接口API中所有目标函数的执行时间生成日志,并将所述日志保存在数据库中。


5.根据权利要求4所述的方法,其特征在于,并保存在数据库中之后,所述方法还包括:
根据所述日志获取所述第一目标API中所有目标函数执行时间超过第一阈值的函数,以及超过第一阈值的函数之间的调用关系;

【专利技术属性】
技术研发人员:柳金山龚达远王照江陆正发
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1