CN109062787A - 一种基于申威架构的进程间通信的统计调试方法及装置 - Google Patents
一种基于申威架构的进程间通信的统计调试方法及装置 Download PDFInfo
- Publication number
- CN109062787A CN109062787A CN201810783426.7A CN201810783426A CN109062787A CN 109062787 A CN109062787 A CN 109062787A CN 201810783426 A CN201810783426 A CN 201810783426A CN 109062787 A CN109062787 A CN 109062787A
- Authority
- CN
- China
- Prior art keywords
- function
- process communication
- module
- packaged
- statistics
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开一种基于申威架构的进程间通信的统计调试方法及装置,方法包括:根据用户输入的第一指令,封装进程通信发送函数,其中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参并增加进程通信的按模块的统计调试功能;申威设备需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称作为入参传入所封装的进程通信发送函数,使其统计当前模块所调用的进程通信函数的相关信息。本发明实施例可统计查看各进程各模块进程通信函数调用的次数与频率,输出调用函数名称及行号,达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种基于申威架构的进程间通信的统计调试方法及装置。
背景技术
套接字(socket)是一种通信机制,凭借这种机制,客户/服务器端(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器端区分开来。
首先服务器端应用程序用系统调用来创建一个套接字,它是系统分配给该服务器端进程的类似文件描述符的资源,它不能与其他的进程共享。接下来,服务器端进程会给套接字起个名字,我们使用系统调用bind来给套接字命名。然后服务器端进程就开始等待客户连接到这个套接字。然后,系统调用listen来创建一个队列并将其用于存放来自客户的进入连接。最后,服务器端通过系统调用accept来接受客户的连接。它会创建一个与原有的命名套接不同的新套接字,这个套接字只用于与这个特定客户端进行通信,而命名套接字(即原先的套接字)则被保留下来继续处理来自其他客户的连接。基于socket的客户端比服务器端端简单,同样,客户应用程序首先调用socket来创建一个未命名的套接字,然后将服务器端的命名套接字作为一个地址来调用connect与服务器端建立连接。一旦连接建立,我们就可以像使用底层的文件描述符那样用套接字来实现进程双向数据的通信。
用套接字来实现进程双向数据的通信通过一些系统调用函数进行进程间的通信的数据收发操作。但进程间通信函数都是系统调用,频繁的进程间通信会导致系统性能下降或系统卡顿,特别是一些申威设备命令下发和处理在不同进程中,进程通信方式又被其他模块共用(如日志模块等)时,在大流量日志情况下频繁的系统调用会影响系统的正常运行,而进程间通信没有统计调试功能,无法定位具体是哪个模块哪个函数在频繁进行进程通信从而导致出现问题。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种基于申威架构的进程间通信的统计调试方法及装置。
第一方面,本发明实施例提出一种基于申威架构的进程间通信的统计调试方法,包括:
根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;
其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。
可选地,所述方法还包括:
根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。
可选地,所封装的进程通信发送函数为套接字发送函数。
可选地,所述根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能,包括:
创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;
相应地,所述在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以使所封装的进程通信发送函数将模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参,统计当前模块所调用的进程通信函数的相关信息,包括:
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。
第二方面,本发明实施例还提出一种基于申威架构的进程间通信的统计调试装置,包括:
封装模块,用于根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;
调用模块,用于在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;
其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。
可选地,所述装置还包括:
新增模块,用于根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。
可选地,所封装的进程通信发送函数为套接字发送函数。
可选地,所述封装模块,具体用于
创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;
相应地,所述调用模块,具体用于
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。
第三方面,本发明实施例还提出一种基于申威架构的电子设备,包括:申威处理器、存储器、总线及存储在存储器上并可在申威处理器上运行的计算机程序;
其中,所述申威处理器,存储器通过所述总线完成相互间的通信;
所述申威处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被申威处理器执行时实现上述方法。
由上述技术方案可知,本发明实施例提供的一种基于申威架构的进程间通信的统计调试方法及装置,通过封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,实现了统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号,以达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种基于申威架构的进程间通信的统计调试方法的流程示意图;
图2为本发明一实施例提供的一种基于申威架构的进程间通信的统计调试装置的结构示意图;
图3为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种基于申威架构的进程间通信的统计调试方法的流程示意图,如图1所示,本实施例的基于申威架构的进程间通信的统计调试方法,包括:
S1、根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块ID(标识)、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能。
在具体应用中,所封装的进程通信发送函数可以为套接字发送函数。
S2、在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息。
其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称等。
本发明实施例提供的一种基于申威架构的进程间通信的统计调试方法,通过封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,实现了统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号,以达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。
进一步地,在上述实施例的基础上,所述步骤S1,可以包括:
创建结构体(如struct socket_debug_info)并声明全局变量结构体数组(如g_socket_debug_info[MOUID_MAX]),其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位(如g_g_socket_debug_flag)控制进程通信的按模块的统计调试功能是否开启;
相应地,所述步骤S2,可以包括:
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID(如MOU_ID)、调用函数名称(如__FUNCTION__)、调用函数行号(如__LINE__)和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中,如
g_socket_debug_info[MOU_ID].mou_id=MOU_ID、
g_socket_debug_info[MOU_ID].mou_name=get_name_by_id(MOU_ID)、
g_socket_debug_info[MOU_ID].pfunc=__FUNCTION__、
g_socket_debug_info[MOU_ID].func_line=__LINE__、
g_socket_debug_info[MOU_ID].count=count++、
g_socket_debug_info[MOU_ID].dest_task=count++)。
由此,本实施例实现了通过封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,达到统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号的目的。
进一步地,在上述实施例的基础上,本实施例所述方法还可以包括:
根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。
在具体应用中,举例来说,查看功能可以以MOUID_MAX(最大模块ID)为最大值for循环的方式遍历g_socket_debug_info[]数组结构体,将统计保存的信息打印输出;清除功能可以以MOUID_MAX为最大值for循环的方式遍历g_socket_debug_info[]数组结构体并使成员清空(也可用memset函数使成员清空)。
可以理解的是,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭的目的是在需要使用时开启,平时为不影响性能可默认关闭;通过统计显示的信息可快速知道进程通信的模块、函数及具体行号,可根据调用次数的增加情况判断是否有频繁的进程通信发生,作为判断系统性能下降或系统卡顿的依据。
本发明实施例提供的一种基于申威架构的进程间通信的统计调试方法,通过封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,实现了统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号,以达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。
图2示出了本发明一实施例提供的一种基于申威架构的进程间通信的统计调试装置的结构示意图,如图2所示,本实施例的网卡收发报文的统计调试装置,包括:封装模块21和调用模块22;其中:
所述封装模块21,用于根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;
所述调用模块22,用于在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;
其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称等。
具体地,所述封装模块21根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;所述调用模块22在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称等。
在具体应用中,所封装的进程通信发送函数可以为套接字发送函数。
本发明实施例提供的一种基于申威架构的进程间通信的统计调试装置,通过封装模块封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,调用模块在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,实现了统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号,以达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。
进一步地,在上述实施例的基础上,所述封装模块21,可具体用于
创建结构体(如struct socket_debug_info)并声明全局变量结构体数组(如g_socket_debug_info[MOUID_MAX]),其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位(如g_g_socket_debug_flag)控制进程通信的按模块的统计调试功能是否开启;
相应地,所述调用模块22,可具体用于
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID(如MOU_ID)、调用函数名称(如__FUNCTION__)、调用函数行号(如__LINE__)和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中,如
g_socket_debug_info[MOU_ID].mou_id=MOU_ID、
g_socket_debug_info[MOU_ID].mou_name=get_name_by_id(MOU_ID)、
g_socket_debug_info[MOU_ID].pfunc=__FUNCTION__、
g_socket_debug_info[MOU_ID].func_line=__LINE__、
g_socket_debug_info[MOU_ID].count=count++、
g_socket_debug_info[MOU_ID].dest_task=count++)。
由此,本实施例实现了通过封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,达到统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号的目的。
进一步地,在上述实施例的基础上,本实施例所述装置还可以包括图中未示出的:
新增模块,用于根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。
在具体应用中,举例来说,查看功能可以以MOUID_MAX(最大模块ID)为最大值for循环的方式遍历g_socket_debug_info[]数组结构体,将统计保存的信息打印输出;清除功能可以以MOUID_MAX为最大值for循环的方式遍历g_socket_debug_info[]数组结构体并使成员清空(也可用memset函数使成员清空)。
可以理解的是,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭的目的是在需要使用时开启,平时为不影响性能可默认关闭;通过统计显示的信息可快速知道进程通信的模块、函数及具体行号,可根据调用次数的增加情况判断是否有频繁的进程通信发生,作为判断系统性能下降或系统卡顿的依据。
本发明实施例提供的一种基于申威架构的进程间通信的统计调试装置,实现了统计查看各进程各模块进程通信函数调用的次数与频率,同时输出调用函数名称及行号,以达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。
本实施例的网卡收发报文的统计调试装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图3示出了本发明实施例提供的一种基于申威架构的电子设备的实体结构示意图,如图3所示,该电子设备可以包括:申威处理器31、存储器32、总线33及存储在存储器32上并可在申威处理器31上运行的计算机程序;
其中,所述申威处理器31,存储器32通过所述总线33完成相互间的通信;
所述申威处理器31执行所述计算机程序时实现上述各方法实施例所提供的方法,例如包括:根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被申威处理器执行时实现上述各方法实施例所提供的方法,例如包括:根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的申威处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的申威处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种基于申威架构的进程间通信的统计调试方法,其特征在于,包括:
根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;
其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。
3.根据权利要求1所述的方法,其特征在于,所封装的进程通信发送函数为套接字发送函数。
4.根据权利要求1所述的方法,其特征在于,所述根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能,包括:
创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;
相应地,所述在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以使所封装的进程通信发送函数将模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参,统计当前模块所调用的进程通信函数的相关信息,包括:
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。
5.一种基于申威架构的进程间通信的统计调试装置,其特征在于,包括:
封装模块,用于根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;
调用模块,用于在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;
其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
新增模块,用于根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。
7.根据权利要求5所述的装置,其特征在于,所封装的进程通信发送函数为套接字发送函数。
8.根据权利要求5所述的装置,其特征在于,所述封装模块,具体用于
创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;
相应地,所述调用模块,具体用于
在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。
9.一种基于申威架构的电子设备,其特征在于,包括:申威处理器、存储器、总线及存储在存储器上并可在申威处理器上运行的计算机程序;
其中,所述申威处理器,存储器通过所述总线完成相互间的通信;
所述申威处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被申威处理器执行时实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810783426.7A CN109062787A (zh) | 2018-07-17 | 2018-07-17 | 一种基于申威架构的进程间通信的统计调试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810783426.7A CN109062787A (zh) | 2018-07-17 | 2018-07-17 | 一种基于申威架构的进程间通信的统计调试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109062787A true CN109062787A (zh) | 2018-12-21 |
Family
ID=64816876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810783426.7A Withdrawn CN109062787A (zh) | 2018-07-17 | 2018-07-17 | 一种基于申威架构的进程间通信的统计调试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062787A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242617A (zh) * | 2008-03-04 | 2008-08-13 | 中兴通讯股份有限公司 | 一种性能统计原始数据的测试系统及测试方法 |
CN101321096A (zh) * | 2008-07-11 | 2008-12-10 | 北京立通无限科技有限公司 | 基于共享socket的通信处理方法及装置 |
CN103401734A (zh) * | 2013-08-15 | 2013-11-20 | 迈普通信技术股份有限公司 | 高速数据总线的信号质量调试的方法和装置 |
CN105843738A (zh) * | 2016-03-22 | 2016-08-10 | 汉柏科技有限公司 | 一种进程间通信的统计调试方法及系统 |
-
2018
- 2018-07-17 CN CN201810783426.7A patent/CN109062787A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242617A (zh) * | 2008-03-04 | 2008-08-13 | 中兴通讯股份有限公司 | 一种性能统计原始数据的测试系统及测试方法 |
CN101321096A (zh) * | 2008-07-11 | 2008-12-10 | 北京立通无限科技有限公司 | 基于共享socket的通信处理方法及装置 |
CN103401734A (zh) * | 2013-08-15 | 2013-11-20 | 迈普通信技术股份有限公司 | 高速数据总线的信号质量调试的方法和装置 |
CN105843738A (zh) * | 2016-03-22 | 2016-08-10 | 汉柏科技有限公司 | 一种进程间通信的统计调试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178213B2 (en) | Automated configuration based deployment of stream processing pipeline | |
CN105574082A (zh) | 基于Storm的流处理方法及系统 | |
US10200295B1 (en) | Client selection in a distributed strict queue | |
CN103530255B (zh) | 分布式异步事件的处理方法及系统 | |
US11509530B2 (en) | Impartial buffering in stream processing | |
CN108121608A (zh) | 一种队列调度方法以及节点设备 | |
US9571414B2 (en) | Multi-tiered processing using a distributed strict queue | |
CN109729024A (zh) | 数据包处理系统及方法 | |
US10778512B2 (en) | System and method for network provisioning | |
CN103516633A (zh) | 用于在分布式交换机中提供服务的方法和装置 | |
CN107908488A (zh) | 消息请求接口交互方法、装置、计算机设备及存储介质 | |
CN108683528A (zh) | 一种数据传输方法、中心服务器、服务器及数据传输系统 | |
CN108984327A (zh) | 报文转发方法、多核cpu及网络设备 | |
CN113791792B (zh) | 应用调用信息的获取方法、设备以及存储介质 | |
US11962476B1 (en) | Systems and methods for disaggregated software defined networking control | |
CN109062787A (zh) | 一种基于申威架构的进程间通信的统计调试方法及装置 | |
CN113434252B (zh) | 面向5g网络功能虚拟化的自定义vnf部署系统及方法 | |
CN105812327A (zh) | 复合型高性能多用通讯方法及系统 | |
CN108989107A (zh) | 一种基于申威架构的网卡收发报文的统计调试方法及装置 | |
US9304841B2 (en) | Dispatcher framework to provide inter-application communication | |
CN108920277A (zh) | 业务执行系统、方法及装置、业务隔离系统 | |
US9674282B2 (en) | Synchronizing SLM statuses of a plurality of appliances in a cluster | |
CN114968610B (zh) | 数据处理的方法、多媒体框架及相关设备 | |
CN116560756B (zh) | 服务编排方法、电子设备、计算机可读存储介质 | |
JP5760252B2 (ja) | ネットワークノード及びネットワークノードの設定方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181221 |