一种时延统计方法、装置和计算机可读存储介质与流程

文档序号:17287996发布日期:2019-04-03 03:43阅读:177来源:国知局
一种时延统计方法、装置和计算机可读存储介质与流程

本申请涉及计算机技术领域,特别涉及一种时延统计方法、时延统计装置、系统、电子设备和计算机可读存储介质。



背景技术:

内核模块相关的开发在各种驱动开发、系统开发中是必不可少的。在开发过程中,尤其是对性能要求较高的场景,对内核模块的函数接口的性能或者执行效率、时延等要求就要高很多。如果快速方便的统计出这些内核模块的时延作为调优的参考就尤为重要。现在的时延统计大都是通过在内核函数接口中添加统计时延的代码语句,改变内核程序的逻辑,因而易造成程序运行时间长,系统开销大,时延统计效率低。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本申请的目的是提供一种时延统计方法、装置、系统、电子设备和计算机可读存储介质,能够系统开销小,时延统计效率高,并且能够根据实际情况获取期望的预设函数接口的时延,适用性更强。

其具体方案如下:

第一方面,本申请公开了一种时延统计方法,包括:

在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到所述预设函数接口时执行所述时延函数;

根据所述时延函数获得所述预设函数接口执行命令前的第一时间和执行命令后的第二时间;

利用所述第一时间和所述第二时间得到所述预设函数接口的时延数据。

优选地,在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到所述预设函数接口时执行所述时延函数之前,包括:

获取所述预设函数接口的映射的地址列表;

根据所述地址列表利用所述程序插桩技术在所述地址列表中对应的预设函数接口处插入所述时延函数。

优选地,所述程序插桩技术为kprobe技术。

优选地,利用所述第一时间和所述第二时间得到所述预设函数接口的时延数据之后,还包括:

删除所述时延函数。

第二方面,本申请公开了一种时延统计装置,包括:

运行模块,用于在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到所述预设函数接口时执行所述时延函数;

时间获取模块,用于根据所述时延函数获得所述预设函数接口执行命令前的第一时间和执行命令后的第二时间;

时延数据获取模块,用于利用所述第一时间和所述第二时间得到所述预设函数接口的时延数据。

优选地,还包括:

列表获取模块,用于获取所述预设函数接口的映射的地址列表;

函数插入模块,用于根据所述地址列表利用所述程序插桩技术在所述地址列表中对应的预设函数接口处插入所述时延函数。

优选地,还包括:

删除模块,用于删除所述时延函数。

第三方面,本申请公开了一种时延统计系统,包括:

内核程序装置,用于内核程序的运行;

统计时延装置,用于当运行到预设函数接口时执行时延函数;根据所述时延函数获得所述预设函数接口执行命令前的第一时间和执行命令后的第二时间;利用所述第一时间和所述第二时间得到所述预设函数接口的时延数据。

第四方面,本申请公开了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述时延统计方法的步骤。

第五方面,本申请公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述时延统计方法的步骤。

本申请提供一种时延统计方法,包括:在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到预设函数接口时执行时延函数;根据时延函数获得预设函数接口执行命令前的第一时间和执行命令后的第二时间;利用第一时间和第二时间得到预设函数接口的时延数据。

可见,本申请通过在目标内核程序中利用程序插桩技术在预设函数接口处插入时延函数,不需要对目标内核程序进行任何修改,不需要相关技术人员对目标内核程序手动添加延时代码,只需插入时延函数就可以进行自动的动态侦测预设函数接口的时延数据,因此系统开销小,时延统计效率高,并且能够根据实际情况获取期望的预设函数接口的时延,适用性更强。本申请同时还提供了一种时延统计装置、系统、电子设备和计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种时延统计方法的流程图;

图2为本申请实施例提供的一种时延统计装置的结构示意图;

图3为本申请实施例提供的一种电子设备的结构图;

图4为本申请实施例提供的另一种电子设备的结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

现在的时延统计大都是通过在内核函数接口中添加统计时延的代码语句,改变内核程序的逻辑,因而易造成程序运行时间长,系统开销大,时延统计效率低。基于上述技术问题,本实施例提供一种时延统计方法,通过在目标内核程序中利用程序插桩技术在预设函数接口处插入时延函数,不需要对目标内核程序进行任何修改,不需要相关技术人员对目标内核程序手动添加延时代码,只需插入时延函数就可以进行自动的动态侦测预设函数接口的时延数据,因此系统开销小,时延统计效率高,并且能够根据实际情况获取期望的预设函数接口的时延,适用性更强。具体请参考图1,图1为本申请实施例所提供的一种时延统计方法的流程图,具体包括:

s101、在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到预设函数接口时执行时延函数。

具体的,本申请不对内核程序进行限定,其中待统计时延数据的内核程序为目标内核程序。本申请不对程序插桩技术进行限定,可以是kprobe技术可以是jprobe技术只要能够满足本申请的目的即可。优选为kprobe技术,kprobe技术是一个轻量级内核调试工具,主要是在指定函数调用前后添加自定义函数,从而实现动态探测点的功能,具体的,对于本申请来说为在预设函数接口处添加时延函数从而动态的探测其时延性能。预设函数接口为需要测试的时延数据的接口。

目标内核程序包括不同的指令信息,运行目标内核程序时,运行到预设函数接口时,跳转并执行时延函数。具体的时延函数本申请不再进行限定,包括预设函数接口运行前后的pre_handler和posthandler。

可以理解的是,在程序运行时程序越多其运行压力越大,运行速度越慢,系统开销大,因而也会造成时延统计效率低下。利用插桩技术在函数接口处插入时延函数后减轻了传统的时延统计的目标内核程序的压力,运行速度变快,系统开销降低,进而能够提高实验统计效率。

进一步的,在此步骤执行前,具体包括获取预设接口的映射地址列表,根据地址列表利用程序插桩技术在与地址列表对应的预设函数接口出插入时延函数。具体的,本申请不对地址列表的获得方式进行限定,可以是将目标内核程序中所有的函数接口的地址信息以数据包的形式发送至统计时延装置以使能够在列表中得到预设函数接口的地址信息进而插入时延函数。用户根据实际需求即需要统计哪个或者哪些函数接口的时延数据即确定预设函数接口,从而插入时延函数,预设函数接口可以是一个或者多个函数接口。值得注意的是,当预设函数接口为多个函数接口时,下述第一时间与第二时间相对应。可见,通过设置地址列表可以更加便捷的对函数接口插入延时函数,避免了相关技术仅对需要的函数接口人为的添加程序来得到时延数据,本申请可以自动的选择性的对函数接口进行时延统计,不需要人为操作,并且能够减小程序运行压力,减小系统开销,灵活性更高。

s102、根据时延函数获得预设函数接口执行命令前的第一时间和执行命令后的第二时间。

具体的,时延函数运行,pre_handler记录得到预设函数接口执行命令前的时间即第一时间和posthandler记录执行命令后的时间即第二时间。

s103、利用第一时间和第二时间得到预设函数接口的时延数据。

具体的,利用第一时间和第二时间进行计算得到预设函数接口的时延数据,计算方法本申请不再进行限定,可以是两者相减得到时延数据,也可以是第二时间进行校正后的数据和或第一时间进行校正后的数据相减得到时延数据,当然也可以是第二时间与第一时间相减得到是数据进行校正后得到的数据,本申请不再进行设定,根据程序运行或者其他条件进行综合判断。

进一步,当完成时延数据的统计后,发送至显示界面以使能够清楚的了解目标内核程序的性能;可以是在预设条件下发送至显示界面,例如,可以是当时延大于时延阈值时发送至显示界面,可以理解的是大于时延阈值时目标内核程序的运行状态较差;可以是在预定周期将时延数据发送至显示界面;等。

进一步的,当时延数据统计完成后为了不影响目标内核程序的运行删除时延函数。可以是执行用户删除命令删除时延函数,也可以是当时延统计完成后在预设时间内将时延函数删除,用户可自定义设置。

本实施例提供的一种时延统计方法在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到预设函数接口时执行时延函数,根据时延函数获得预设函数接口执行命令前的第一时间和执行命令后的第二时间,利用第一时间和第二时间得到预设函数接口的时延数据。

基于上述技术方案,本实施例通过在目标内核程序中利用程序插桩技术在预设函数接口处插入时延函数,不需要对目标内核程序进行任何修改,不需要相关技术人员对目标内核程序手动添加延时代码,只需插入时延函数就可以进行自动的动态侦测预设函数接口的时延数据,因此系统开销小,时延统计效率高,并且能够根据实际情况获取期望的预设函数接口的时延,适用性更强。

进一步,通过获取预设接口的映射地址列表,根据地址列表利用程序插桩技术在与列表对应的预设函数接口出插入时延函数,避免了相关技术仅对需要的函数接口认为的添加程序来得到时延数据,本申请可以自动的选择性的对函数接口进行时延统计,不需要人为操作,并且能够减小程序运行压力,减小系统开销,灵活性更高。进一步,当时延数据统计完成后为了不影响目标内核程序的运行删除时延函数,避免影响运行速率。

下面对本申请实施例提供的一种时延统计装置、系统、电子设备及计算机可读存储介质进行介绍,与上文描述的时延统计方法可相互对应参照。

参考图2,图2为本申请实施例所提供的一种时延统计装置的结构示意图,包括:

运行模块201,用于在目标内核程序中有被程序插桩技术在预设函数接口处插入的时延函数,当运行到预设函数接口时执行时延函数;

时间获取模块202,用于根据时延函数获得预设函数接口执行命令前的第一时间和执行命令后的第二时间;

时延数据获取模块203,用于利用第一时间和第二时间得到预设函数接口的时延数据。

在一些具体的实施例中,具体包括:

列表获取模块,用于获取预设函数接口的映射的地址列表;

函数插入模块,用于根据地址列表利用程序插桩技术在列表中对应的预设函数接口处插入时延函数。

在一些具体的实施例中,还包括:

删除模块,用于删除时延函数。

由于时延统计装置部分的实施例与时延统计方法部分的实施例相互对应,因此时延统计装置部分的实施例请参见时延统计方法部分的实施例的描述,这里暂不赘述。

本申请实施例所提供一种时延统计系统,包括:

内核程序装置,用于内核程序的运行;

统计时延装置,用于当运行到预设函数接口时执行时延函数;根据时延函数获得预设函数接口执行命令前的第一时间和执行命令后的第二时间;利用第一时间和第二时间得到预设函数接口的时延数据。

由于时延统计系统部分的实施例与时延统计方法部分的实施例相互对应,因此时延统计系统部分的实施例请参见时延统计方法部分的实施例的描述,这里暂不赘述。

本申请还公开了一种电子设备,参见图3,图3为本申请实施例提供的一种电子设备的结构图,包括:

存储器100,用于存储计算机程序;

处理器200,用于执行计算机程序时可以实现上述时延统计方法实施例所提供的步骤。

在上述实施例的基础上,作为优选实施方式,参见图4,图4为本申请实施例提供的另一种电子设备的结构图,该电子设备还包括:

输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元400,与处理器200相连,用于显示处理器200发送的数据。该显示单元400可以为pc机上的显示屏、液晶显示屏或者电子墨水显示屏等。

网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

由于电子设备部分的实施例与时延统计方法部分的实施例相互对应,因此电子设备部分的实施例请参见时延统计方法部分的实施例的描述,这里暂不赘述。

本申请还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述时延统计方法的步骤。

由于计算机可读存储介质部分的实施例与时延统计方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见时延统计方法部分的实施例的描述,这里暂不赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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