CN113852975B - 基站的协议栈程序的性能确定方法及装置 - Google Patents
基站的协议栈程序的性能确定方法及装置 Download PDFInfo
- Publication number
- CN113852975B CN113852975B CN202110956002.8A CN202110956002A CN113852975B CN 113852975 B CN113852975 B CN 113852975B CN 202110956002 A CN202110956002 A CN 202110956002A CN 113852975 B CN113852975 B CN 113852975B
- Authority
- CN
- China
- Prior art keywords
- program
- protocol stack
- performance data
- event
- recording
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 96
- 230000003993 interaction Effects 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 18
- 230000000694 effects Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007619 statistical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004141 dimensional analysis Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
Abstract
本发明实施例提供了一种协议栈程序的性能确定方法及装置、存储介质、电子装置,该方法包括:获取协议栈程序的性能数据,其中,性能数据中包括协议栈程序运行过程中产生的数据;利用全局数组变量并按照性能数据的数据类型记录性能数据;基于记录的性能数据确定协议栈程序的性能。通过本发明,解决了相关技术中无法确定协议栈程序的性能的问题,达到准确的分析出协议栈程序得性能的效果。
Description
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种基站的协议栈程序的性能确定方法及装置。
背景技术
皮基站(Pico Site),是一种小型企业级基站,单载波发射功率在100~500Mw,覆盖范围在20~50米,可以为用户实现移动通信信号精确深度覆盖,提升用户体验,皮基站因其特点低功率,小范围的覆盖特点,在现场部署时会比宏基站和微基站的数量高一个数量级,一个地市的皮基站数量会达到数千台,甚至上万台,皮基站由于其应用场景,通常对产品体积有所要求,体积越小就可以安装在天线附近,如塔顶和房顶,甚至可以用跳线将发射信号连接到天线端,馈缆短,损耗小,但是体积有限,可以安装的信道板数量有限,同时能支持的载频就少,所以提供的容量较小。另外体积小对硬件集成要求也越高,所以提升软件程序的执行性能和效率,减少软件程序占用的存储空间,同时能够提升并发接入用户容量提出了新的挑战,而皮基站协议栈软件涉及不同外部接口之间的接口通信,协议栈内部各层之间接口,以及数据面的接口通信,业务代码处理流程的执行,当遇到性能瓶颈的时候,没有一个可行准确的代码级性能统计方法,就很难找到代码执行性能瓶颈所在,导致很难找到突破口,代码级的处理目前还没有好的性能统计方法。
针对上述技术问题,相关技术中尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基站的协议栈程序的性能确定方法及装置,可以至少解决相关技术中无法确定协议栈程序的性能的问题。
根据本发明的一个实施例,提供了一种基站的协议栈程序的性能确定方法,包括:获取协议栈程序的性能数据,其中,上述性能数据中包括上述协议栈程序运行过程中产生的数据;利用全局数组变量并按照上述性能数据的数据类型记录上述性能数据;基于记录的上述性能数据确定上述协议栈程序的性能。
根据本发明的另一个实施例,提供了一种基站的协议栈程序的性能确定装置,包括:第一获取模块,用于获取协议栈程序的性能数据,其中,上述性能数据中包括上述协议栈程序运行过程中产生的数据;第一记录模块,用于利用全局数组变量并按照上述性能数据的数据类型记录上述性能数据;第一确定模块,用于基于记录的上述性能数据确定上述协议栈程序的性能。
在一个示例性实施例中,上述第一记录模块,包括:第一生成单元,用于按照上述性能数据的数据类型生成上述全局数组变量中的类;第一记录单元,用于在上述类中记录与上述类的类型对应的上述性能数据。
在一个示例性实施例中,上述第一获取模块,包括以下至少之一:第一获取单元,用于获取上述协议栈程序处理的每个事件的事件信息;第二获取单元,用于获取上述协议栈程序处理上述每个事件的处理时间;第三获取单元,用于获取上述协议栈程序处理上述每个事件的程序函数的调用关系;第四获取单元,用于获取上述协议栈程序与外部协议栈程序之间的第一交互信息;第五获取单元,用于获取上述协议栈程序与内部协议栈程序之间的第二交互信息。
在一个示例性实施例中,第一记录模块,包括以下之一:第一处理单元,用于在上述性能数据包括上述事件信息和上述处理时间的情况下,将上述事件信息与上述处理时间一一对应;在上述全局数组变量中的事件类中记录执行上述每个事件的执行时间,得到事件记录表,其中,上述事件记录表中包括执行上述每个事件的执行时间的排序、上述执行时间的平均值;第二处理单元,用于在上述性能数据包括调用关系的情况下,在上述全局数组变量中的程序函数类中记录上述调用关系和上述协议栈程序调用程序函数的时间差,得到函数程序记录表,其中,上述函数程序统计表中还包括调用上述程序函数的平均时间;第三处理单元,用于在上述性能数据包括上述第一交互信息的情况下,在上述全局数组变量中的第一交互类中记录上述协议栈程序与上述外部协议栈程序之间的第一通信流量和传输的第一数据信息,得到第一交互记录表;第四处理单元,用于在上述性能数据包括上述第二交互信息的情况下,在上述全局数组变量中的第二交互类中记录上述协议栈程序与上述内部协议栈程序之间的第二通信流量和传输的第二数据信息,得到第二交互记录表。
在一个示例性实施例中,上述装置还包括:第一定义模块,用于定义计时器类;第二记录模块,用于利用上述计时器类记录上述协议栈程序调用程序函数的调用信息,其中,上述程序函数用于执行事件。
在一个示例性实施例中,上述第二记录模块,包括:第一生成单元,用于在上述程序函数的中生成计时器实例;第二记录单元,用于利用上述计时器实例中的构造函数和析构函数记录调用上述程序函数的时间间隔、执行上述程序函数的次数以及上述程序函数的调用记录。
在一个示例性实施例中,上述装置还包括:第二确定模块,用于利用全局数组变量并按照上述性能数据的数据类型记录上述性能数据之后,确定上述性能数据的标签信息,其中,上述标签信息用于标识上述协议栈程序执行事件的时间与执行上述事件所调用的程序函数之间的对应关系,以及调用上述程序函数的调用信息。
在一个示例性实施例中,上述第一确定模块,包括:第一确定单元,用于确定上述性能数据所在的记录表;第二生成单元,用于生成上述记录表对应的记录结果;第二确定单元,用于按照上述记录结果确定上述协议栈程序的性能。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过获取协议栈程序的性能数据,其中,性能数据中包括协议栈程序运行过程中产生的数据;利用全局数组变量并按照性能数据的数据类型记录性能数据;基于记录的性能数据确定协议栈程序的性能。实现了从多维度记录性能数据,对协议栈程序的性能进行多维度分析的目的。因此,可以解决相关技术中无法确定协议栈程序的性能的问题,达到准确的分析出协议栈程序得性能的效果。
附图说明
图1是本发明实施例的一种基站的协议栈程序的性能确定方法的移动终端的硬件结构框图;
图2是根据本发明实施例的基站的协议栈程序的性能确定方法的流程图;
图3是根据本发明实施例的基于皮基站的性能统计的方法的流程图;
图4是根据本发明实施例的基站的协议栈程序的性能确定装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种基站的协议栈程序的性能确定方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的基站的协议栈程序的性能确定方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种基站的协议栈程序的性能确定方法,图2是根据本发明实施例的基站的协议栈程序的性能确定方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取协议栈程序的性能数据,其中,性能数据中包括协议栈程序运行过程中产生的数据;
步骤S204,利用全局数组变量并按照性能数据的数据类型记录性能数据;
步骤S206,基于记录的性能数据确定协议栈程序的性能。
其中,上述步骤的执行主体可以为终端等,但不限于此。
本实施例包括但不限于应用于对皮基站中的协议栈程序的性能进行统计的场景中。
在本实施例中,全局数组变量中包括多个类,用于记录不同维度的性能数据。
在本实施例中,基于皮基站的协议栈程序一般均是采用C/C++语言编写的,模块内部采用的是函数调用或者注册回调等方法处理,模块间一般通过命名管道,用户数据协议(User Date Protocol,简称为UDP)、共享内存等方式进行通信。
通过上述步骤,通过获取协议栈程序的性能数据,其中,性能数据中包括协议栈程序运行过程中产生的数据;利用全局数组变量并按照性能数据的数据类型记录性能数据;基于记录的性能数据确定协议栈程序的性能。实现了从多维度记录性能数据,对协议栈程序的性能进行多维度分析的目的。因此,可以解决相关技术中无法确定协议栈程序的性能的问题,达到准确的分析出协议栈程序得性能的效果。
在一个示例性实施例中,利用全局数组变量并按照性能数据的数据类型记录性能数据,包括:
S1,按照性能数据的数据类型生成全局数组变量中的类;
S2,在类中记录与类的类型对应的性能数据。
在本实施例中,性能数据的类型包括事件类型、程序函数类型等。类包括事件类event,用于记录程序处理事件的统计信息,程序函数类procedure,用于记录程序函数调用关系及时间花销的统计信息。
在一个示例性实施例中,获取协议栈程序的性能数据,包括以下至少之一:
S1,获取协议栈程序处理的每个事件的事件信息;
S2,获取协议栈程序处理每个事件的处理时间;
S3,获取协议栈程序处理每个事件的程序函数的调用关系;
S4,获取协议栈程序与外部协议栈程序之间的第一交互信息;
S5,获取协议栈程序与内部协议栈程序之间的第二交互信息。
在一个示例性实施例中,利用全局数组变量并按照性能数据的数据类型记录性能数据,包括以下之一:
S1,在性能数据包括事件信息和处理时间的情况下,将事件信息与处理时间一一对应;在全局数组变量中的事件类中记录执行每个事件的执行时间,得到事件记录表,其中,事件记录表中包括执行每个事件的执行时间的排序、执行时间的平均值;
在本实施例中,例如,在事件类中记录执行每个事件的执行时间,执行时间可以根据不同的event类型在程序函数中打点,每一个event在一次统计过程中,会有多次统计结果,为了能够体现程序对每一个event类型处理时间,需要将对应一个event执行的时间进行最大,最小,平均值计算统计,事件记录表对应于每个事件的执行时间。
S2,在性能数据包括调用关系的情况下,在全局数组变量中的程序函数类中记录调用关系和协议栈程序调用程序函数的时间差,得到函数程序记录表,其中,函数程序统计表中还包括调用程序函数的平均时间;
在本实施例中,程序函数类procedure记录程序函数调用关系及时间花销的统计信息,在每一个程序函数的入口产生一个ElapsedTimer对象,会自动调用构造函数完成对象的建立和对应函数标签对应并获取当前时间,程序函数执行完成后,程序函数退出会自动销毁对象,调用ElapsedTimer类的析构函数,并计算该程序函数标签下所花费的时间差,由于一个程序函数可能会被调用多次,求出该程序函数的平均时间花销。
S3,在性能数据包括第一交互信息的情况下,在全局数组变量中的第一交互类中记录协议栈程序与外部协议栈程序之间的第一通信流量和传输的第一数据信息,得到第一交互记录表;
在本实施例中,协议栈程序与外部协议栈程序之间通过命名管道、UDP、共享内存等方式进行通信,主要统计在统计周期内存模块间通信数据的流量和最大数据包,用于评估通信接口的通信流量情况。
S4,在性能数据包括第二交互信息的情况下,在全局数组变量中的第二交互类中记录协议栈程序与内部协议栈程序之间的第二通信流量和传输的第二数据信息,得到第二交互记录表。
在本实施例中,第二交互记录表主要统计协议栈程序与内部协议栈程序之间的消息流量,统计周期内出现的最大数据包大小。
在一个示例性实施例中,方法还包括:
S1,定义计时器类;
S2,利用计时器类记录协议栈程序调用程序函数的调用信息,其中,程序函数用于执行事件。
在一个示例性实施例中,利用计时器类记录协议栈程序调用程序函数的调用信息,包括:
S1,在程序函数的中生成计时器实例;
S2,利用计时器实例中的构造函数和析构函数记录调用程序函数的时间间隔、执行程序函数的次数以及程序函数的调用记录。
在本实施例中,定义一个计时器ElapsedTimer类,主要功能是获取两次程序函数procedure的调用时间间隔,在procedure的入口生成一个计时器实例ElapsedTimer的实例,利用ElapsedTimer的构造函数和析构函数进行时间花销和代码执行次数的统计,以及代码调用关系的记录。
在一个示例性实施例中,利用全局数组变量并按照性能数据的数据类型记录性能数据之后,方法还包括:
S1,确定性能数据的标签信息,其中,标签信息用于标识协议栈程序执行事件的时间与执行事件所调用的程序函数之间的对应关系,以及调用程序函数的调用信息。
在本实施例中,标签信息用于统计程序函数根据不同事件event处理procedure执行花费时间对应关系,统计event对应procedure的调用信息。
在一个示例性实施例中,基于记录的性能数据确定协议栈程序的性能,包括:
S1,确定性能数据所在的记录表;
S2,生成记录表对应的记录结果;
S3,按照记录结果确定协议栈程序的性能。
在本实施例中,对性能数据的统计结束后汇总处理存储的全局统计数据,输出性能统计结果。
下面结合具体实施例对本发明进行说明:
本实施例提供一种基于皮基站的性能统计的方法,如图3所示,具体包括以下步骤:
S301,为统计方法设置开关,可以控制性能统计的开启和关闭时机,控制统计周期。
统计方法可以选择汇总模式或者详细模式两种模式,汇总模式(S302)可以在统计周期内,剔除event中时间花销高于两倍的历史记录,计算时间花销的平均值,最大值和最小值,而在详细模式(S303)下除了汇总模式下统计的数据,还统计出处理每个event的函数调用关系及时间花销。
S304-S306,用全局数组变量来记录性能数据,具体从不同统计维度定义如下几类:
1、event记录程序处理事件的统计信息;
2、procedure记录程序函数调用关系及时间花销的统计信息;
3、{event,procedure}对应表记录event对应procedure的详细调用信息;
4、external message记录与外部模块之间消息的统计信息;
5、internal message记录内部模块之间消息的统计信息;
定义一个ElapsedTimer类,主要功能是获取两次procedure的调用时间间隔,在procedure的入口生成一个ElapsedTimer的实例,利用ElapsedTimer的构造函数和析构函数进行时间花销和代码执行次数的统计,以及代码调用关系的记录。
为不同处理流程子模块定义标签,用于统计程序根据不同event处理procedure执行花费时间对应关系,统计event对应procedure的调用信息。
S307,统计结束后汇总处理存储的全局统计数据,输出性能统计结果。
在本实施例中,性能数据统计完成后,根据既定规则将数据记录到了全局数组变量中,如何将统计到的性能数据汇总归纳并输出详细的统计结果,就涉及到了本发明对统计数据进行批量化处理的方法:
不同类型的性能数据统计结果,需要采用不同的处理方法,才可以更准确的通过性能数据反应出前程序执行的真实情况。
针对event类型,统计方法是根据不同的event类型在程序中打点,每一个event在一次统计过程中,会有多次统计结果,为了能够体现程序对每一个event类型处理时间,需要将对应一个event执行的时间进行最大,最小,平均值计算统计,统计结果类似如表1所示:
表1:
procedure记录程序函数调用关系及时间花销的统计信息,在每一个函数入口产生一个ElapsedTimer对象,会自动调用构造函数完成对象的建立和对应函数标签对应并获取当前时间,函数执行完成后,函数退出会自动销毁对象,调用ElapsedTimer类的析构函数,并计算该函数标签下所花费的时间差,由于一个函数可能会被调用多次,求出该函数的平均时间花销,统计结果类似如表2所示:
表2:
针对external message外部消息统计,主要是模块外,通过命名管道,UDP,共享内存等方式进行通信,主要统计在统计周期内存模块间通信数据的流量和最大数据包,用于评估通信接口的通信流量情况,统计结果类似如表3所示:
表3:
针对internal message内部消息统计,主要统计模块内各子模块之间消息流量,统计周期内出现的最大数据包大小,统计结果类似如表4所示:
表4:
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种协议栈程序的性能确定装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的基站的协议栈程序的性能确定装置的结构框图,如图4所示,该装置包括:
第一获取模块42,用于获取协议栈程序的性能数据,其中,性能数据中包括协议栈程序运行过程中产生的数据;
第一记录模块44,用于利用全局数组变量并按照性能数据的数据类型记录性能数据;
第一确定模块46,用于基于记录的性能数据确定协议栈程序的性能。
在一个示例性实施例中,上述第一记录模块,包括:
第一生成单元,用于按照上述性能数据的数据类型生成上述全局数组变量中的类;
第一记录单元,用于在上述类中记录与上述类的类型对应的上述性能数据。
在一个示例性实施例中,上述第一获取模块,包括以下至少之一:
第一获取单元,用于获取上述协议栈程序处理的每个事件的事件信息;
第二获取单元,用于获取上述协议栈程序处理上述每个事件的处理时间;
第三获取单元,用于获取上述协议栈程序处理上述每个事件的程序函数的调用关系;
第四获取单元,用于获取上述协议栈程序与外部协议栈程序之间的第一交互信息;
第五获取单元,用于获取上述协议栈程序与内部协议栈程序之间的第二交互信息。
在一个示例性实施例中,第一记录模块,包括以下之一:
第一处理单元,用于在上述性能数据包括上述事件信息和上述处理时间的情况下,将上述事件信息与上述处理时间一一对应;在上述全局数组变量中的事件类中记录执行上述每个事件的执行时间,得到事件记录表,其中,上述事件记录表中包括执行上述每个事件的执行时间的排序、上述执行时间的平均值;
第二处理单元,用于在上述性能数据包括调用关系的情况下,在上述全局数组变量中的程序函数类中记录上述调用关系和上述协议栈程序调用程序函数的时间差,得到函数程序记录表,其中,上述函数程序统计表中还包括调用上述程序函数的平均时间;
第三处理单元,用于在上述性能数据包括上述第一交互信息的情况下,在上述全局数组变量中的第一交互类中记录上述协议栈程序与上述外部协议栈程序之间的第一通信流量和传输的第一数据信息,得到第一交互记录表;
第四处理单元,用于在上述性能数据包括上述第二交互信息的情况下,在上述全局数组变量中的第二交互类中记录上述协议栈程序与上述内部协议栈程序之间的第二通信流量和传输的第二数据信息,得到第二交互记录表。
在一个示例性实施例中,上述装置还包括:
第一定义模块,用于定义计时器类;
第二记录模块,用于利用上述计时器类记录上述协议栈程序调用程序函数的调用信息,其中,上述程序函数用于执行事件。
在一个示例性实施例中,上述第二记录模块,包括:
第一生成单元,用于在上述程序函数的中生成计时器实例;
第二记录单元,用于利用上述计时器实例中的构造函数和析构函数记录调用上述程序函数的时间间隔、执行上述程序函数的次数以及上述程序函数的调用记录。
在一个示例性实施例中,上述装置还包括:
第二确定模块,用于利用全局数组变量并按照上述性能数据的数据类型记录上述性能数据之后,确定上述性能数据的标签信息,其中,上述标签信息用于标识上述协议栈程序执行事件的时间与执行上述事件所调用的程序函数之间的对应关系,以及调用上述程序函数的调用信息。
在一个示例性实施例中,上述第一确定模块,包括:
第一确定单元,用于确定上述性能数据所在的记录表;
第二生成单元,用于生成上述记录表对应的记录结果;
第二确定单元,用于按照上述记录结果确定上述协议栈程序的性能。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以上各步骤的计算机程序。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种协议栈程序的性能确定方法,其特征在于,包括:
获取协议栈程序的性能数据,其中,所述性能数据中包括所述协议栈程序运行过程中产生的数据;
利用全局数组变量并按照所述性能数据的数据类型记录所述性能数据;
基于记录的所述性能数据确定所述协议栈程序的性能;
其中,利用全局数组变量并按照所述性能数据的数据类型记录所述性能数据,包括:
按照所述性能数据的数据类型生成所述全局数组变量中的类,其中,所述性能数据的数据类型包括事件类型和程序函数类型,所述类包括与所述事件类型对应的事件类和程序函数类,所述事件类用于记录所述协议栈程序处理的事件的统计信息,所述程序函数类用于记录所述协议栈程序中程序函数的调用关系和时间花销的统计信息;
在所述类中记录与所述类的类型对应的所述性能数据。
2.根据权利要求1所述的方法,其特征在于,获取协议栈程序的性能数据,包括以下至少之一:
获取所述协议栈程序处理的每个事件的事件信息;
获取所述协议栈程序处理所述每个事件的处理时间;
获取所述协议栈程序处理所述每个事件的程序函数的调用关系;
获取所述协议栈程序与外部协议栈程序之间的第一交互信息;
获取所述协议栈程序与内部协议栈程序之间的第二交互信息。
3.根据权利要求2所述的方法,其特征在于,利用全局数组变量并按照所述性能数据的数据类型记录所述性能数据,包括以下之一:
在所述性能数据包括所述事件信息和所述处理时间的情况下,将所述事件信息与所述处理时间一一对应;在所述全局数组变量中的事件类中记录执行所述每个事件的执行时间,得到事件记录表,其中,所述事件记录表中包括执行所述每个事件的执行时间的排序、所述执行时间的平均值;
在所述性能数据包括调用关系的情况下,在所述全局数组变量中的程序函数类中记录所述调用关系和所述协议栈程序调用程序函数的时间差,得到函数程序记录表,其中,所述函数程序统计表中还包括调用所述程序函数的平均时间;
在所述性能数据包括所述第一交互信息的情况下,在所述全局数组变量中的第一交互类中记录所述协议栈程序与所述外部协议栈程序之间的第一通信流量和传输的第一数据信息,得到第一交互记录表;
在所述性能数据包括所述第二交互信息的情况下,在所述全局数组变量中的第二交互类中记录所述协议栈程序与所述内部协议栈程序之间的第二通信流量和传输的第二数据信息,得到第二交互记录表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
定义计时器类;
利用所述计时器类记录所述协议栈程序调用程序函数的调用信息,其中,所述程序函数用于执行事件。
5.根据权利要求4所述的方法,其特征在于,利用所述计时器类记录所述协议栈程序调用程序函数的调用信息,包括:
在所述程序函数的中生成计时器实例;
利用所述计时器实例中的构造函数和析构函数记录调用所述程序函数的时间间隔、执行所述程序函数的次数以及所述程序函数的调用记录。
6.根据权利要求1所述的方法,其特征在于,利用全局数组变量并按照所述性能数据的数据类型记录所述性能数据之后,所述方法还包括:
确定所述性能数据的标签信息,其中,所述标签信息用于标识所述协议栈程序执行事件的时间与执行所述事件所调用的程序函数之间的对应关系,以及调用所述程序函数的调用信息。
7.根据权利要求1所述的方法,其特征在于,基于记录的所述性能数据确定所述协议栈程序的性能,包括:
确定所述性能数据所在的记录表;
生成所述记录表对应的记录结果;
按照所述记录结果确定所述协议栈程序的性能。
8.一种协议栈程序的性能确定装置,其特征在于,包括:
第一获取模块,用于获取协议栈程序的性能数据,其中,所述性能数据中包括所述协议栈程序运行过程中产生的数据;
第一记录模块,用于利用全局数组变量并按照所述性能数据的数据类型记录所述性能数据;
第一确定模块,用于基于记录的所述性能数据确定所述协议栈程序的性能
其中,第一记录模块,还用于按照所述性能数据的数据类型生成所述全局数组变量中的类,其中,所述性能数据的数据类型包括事件类型和程序函数类型,所述类包括与所述事件类型对应的事件类和程序函数类,所述事件类用于记录所述协议栈程序处理的事件的统计信息,所述程序函数类用于记录所述协议栈程序中程序函数的调用关系和时间花销的统计信息;在所述类中记录与所述类的类型对应的所述性能数据。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110956002.8A CN113852975B (zh) | 2021-08-19 | 2021-08-19 | 基站的协议栈程序的性能确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110956002.8A CN113852975B (zh) | 2021-08-19 | 2021-08-19 | 基站的协议栈程序的性能确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113852975A CN113852975A (zh) | 2021-12-28 |
CN113852975B true CN113852975B (zh) | 2024-02-02 |
Family
ID=78976074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110956002.8A Active CN113852975B (zh) | 2021-08-19 | 2021-08-19 | 基站的协议栈程序的性能确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852975B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903754A (en) * | 1994-06-21 | 1999-05-11 | Microsoft Corporation | Dynamic layered protocol stack |
US6363477B1 (en) * | 1998-08-28 | 2002-03-26 | 3Com Corporation | Method for analyzing network application flows in an encrypted environment |
CN103684913A (zh) * | 2013-12-09 | 2014-03-26 | 北京创毅视讯科技有限公司 | 协议栈的测试方法、物理设备、终端和系统 |
WO2017206873A1 (zh) * | 2016-05-31 | 2017-12-07 | 广东欧珀移动通信有限公司 | 一种应用程序的关闭方法、装置、存储介质及电子设备 |
CN109361653A (zh) * | 2018-09-13 | 2019-02-19 | 上海华元创信软件有限公司 | 一种powerlink主站 |
CN111490963A (zh) * | 2019-01-25 | 2020-08-04 | 上海哔哩哔哩科技有限公司 | 基于quic协议栈的数据处理方法、系统、设备及存储介质 |
CN112867044A (zh) * | 2021-01-14 | 2021-05-28 | 江苏亨鑫众联通信技术有限公司 | 一种基站模拟测试终端、测试方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716647B2 (en) * | 2004-10-01 | 2010-05-11 | Microsoft Corporation | Method and system for a system call profiler |
JP4559937B2 (ja) * | 2005-09-01 | 2010-10-13 | 株式会社東芝 | プログラム生成装置 |
US8490061B2 (en) * | 2009-05-07 | 2013-07-16 | International Business Machines Corporation | Profiling application performance according to data structure |
-
2021
- 2021-08-19 CN CN202110956002.8A patent/CN113852975B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903754A (en) * | 1994-06-21 | 1999-05-11 | Microsoft Corporation | Dynamic layered protocol stack |
US6363477B1 (en) * | 1998-08-28 | 2002-03-26 | 3Com Corporation | Method for analyzing network application flows in an encrypted environment |
CN103684913A (zh) * | 2013-12-09 | 2014-03-26 | 北京创毅视讯科技有限公司 | 协议栈的测试方法、物理设备、终端和系统 |
WO2017206873A1 (zh) * | 2016-05-31 | 2017-12-07 | 广东欧珀移动通信有限公司 | 一种应用程序的关闭方法、装置、存储介质及电子设备 |
CN109361653A (zh) * | 2018-09-13 | 2019-02-19 | 上海华元创信软件有限公司 | 一种powerlink主站 |
CN111490963A (zh) * | 2019-01-25 | 2020-08-04 | 上海哔哩哔哩科技有限公司 | 基于quic协议栈的数据处理方法、系统、设备及存储介质 |
CN112867044A (zh) * | 2021-01-14 | 2021-05-28 | 江苏亨鑫众联通信技术有限公司 | 一种基站模拟测试终端、测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
"用户空间协议栈的并行化与性能优化";别体伟,华蓓;《电子技术设计与应用》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113852975A (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102404858B (zh) | 一种无线资源优化方法、装置及系统 | |
CN106162714B (zh) | 一种投诉信息处理方法及装置 | |
KR20090051994A (ko) | 휴대 단말기 진단 및 감시 방법과 시스템 | |
CN104683124B (zh) | 终端类型识别方法和装置 | |
CN102387461A (zh) | 一种移动数据业务推荐方法、装置和系统 | |
RU2520326C2 (ru) | Инструментальное средство анализа и мониторинга сети | |
CN110611831B (zh) | 一种视频传输方法及装置 | |
CN110087226B (zh) | 流量统计方法、装置、存储介质及电子装置 | |
EP2741449A1 (en) | Processing of call data records | |
CN113852975B (zh) | 基站的协议栈程序的性能确定方法及装置 | |
CN110198522B (zh) | 数据传输的方法、装置、电子设备及计算机可读存储介质 | |
CN104320766A (zh) | 垃圾短信识别方法、装置及设备 | |
CN108234795B (zh) | 语音告警方法、装置、系统、存储介质及处理器 | |
CN109146473B (zh) | Dapp评价数据的处理方法、装置及电子设备 | |
CN106792895A (zh) | 一种确定数据包大小的方法及设备 | |
EP1817931B1 (en) | Simulating a mobile network with shared access channels | |
CN110035436A (zh) | 信息监控方法、装置、设备及存储介质 | |
CN112217944B (zh) | 在线话单处理方法、装置、设备以及存储介质 | |
CN109753599B (zh) | 推荐业务的方法和装置 | |
CN109040195B (zh) | Dapp服务数据的处理方法、装置及电子设备 | |
CN112929706A (zh) | 视频数据的回放方法、装置、存储介质以及电子装置 | |
CN113110997A (zh) | 一种测试方法、装置及设备 | |
CN107466018A (zh) | 一种终端设备的数据传送方法和终端设备 | |
CN111294414A (zh) | 一种报文的处理方法、装置以及系统 | |
CN111294314A (zh) | 一种报文的处理方法、装置以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |