一种基于申威架构的进程间通信的统计调试方法及装置制造方法及图纸

技术编号:19857295 阅读:22 留言:0更新日期:2018-12-22 11:39
本发明专利技术实施例公开一种基于申威架构的进程间通信的统计调试方法及装置,方法包括:根据用户输入的第一指令,封装进程通信发送函数,其中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参并增加进程通信的按模块的统计调试功能;申威设备需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称作为入参传入所封装的进程通信发送函数,使其统计当前模块所调用的进程通信函数的相关信息。本发明专利技术实施例可统计查看各进程各模块进程通信函数调用的次数与频率,输出调用函数名称及行号,达到定位频繁的进程通信导致系统性能下降或系统卡顿问题的目的。

【技术实现步骤摘要】
一种基于申威架构的进程间通信的统计调试方法及装置
本专利技术实施例涉及计算机
,具体涉及一种基于申威架构的进程间通信的统计调试方法及装置。
技术介绍
套接字(socket)是一种通信机制,凭借这种机制,客户/服务器端(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器端区分开来。首先服务器端应用程序用系统调用来创建一个套接字,它是系统分配给该服务器端进程的类似文件描述符的资源,它不能与其他的进程共享。接下来,服务器端进程会给套接字起个名字,我们使用系统调用bind来给套接字命名。然后服务器端进程就开始等待客户连接到这个套接字。然后,系统调用listen来创建一个队列并将其用于存放来自客户的进入连接。最后,服务器端通过系统调用accept来接受客户的连接。它会创建一个与原有的命名套接不同的新套接字,这个套接字只用于与这个特定客户端进行通信,而命名套接字(即原先的套接字)则被保留下来继续处理来自其他客户的连接。基于socket的客户端比服务器端端简单,同样,客户应用程序首先调用socket来创建一个未命名的套接字,然后将服务器端的命名套接字作为一个地址来调用connect与服务器端建立连接。一旦连接建立,我们就可以像使用底层的文件描述符那样用套接字来实现进程双向数据的通信。用套接字来实现进程双向数据的通信通过一些系统调用函数进行进程间的通信的数据收发操作。但进程间通信函数都是系统调用,频繁的进程间通信会导致系统性能下降或系统卡顿,特别是一些申威设备命令下发和处理在不同进程中,进程通信方式又被其他模块共用(如日志模块等)时,在大流量日志情况下频繁的系统调用会影响系统的正常运行,而进程间通信没有统计调试功能,无法定位具体是哪个模块哪个函数在频繁进行进程通信从而导致出现问题。
技术实现思路
由于现有方法存在上述问题,本专利技术实施例提出一种基于申威架构的进程间通信的统计调试方法及装置。第一方面,本专利技术实施例提出一种基于申威架构的进程间通信的统计调试方法,包括:根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。可选地,所述方法还包括:根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。可选地,所封装的进程通信发送函数为套接字发送函数。可选地,所述根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能,包括:创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;相应地,所述在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以使所封装的进程通信发送函数将模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参,统计当前模块所调用的进程通信函数的相关信息,包括:在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。第二方面,本专利技术实施例还提出一种基于申威架构的进程间通信的统计调试装置,包括:封装模块,用于根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;调用模块,用于在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。可选地,所述装置还包括:新增模块,用于根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。可选地,所封装的进程通信发送函数为套接字发送函数。可选地,所述封装模块,具体用于创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;相应地,所述调用模块,具体用于在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。第三方面,本专利技术实施例还提出一种基于申威架构的电子设备,包括:申威处理器、存储器、总线及存储在存储器上并可在申威处理器上运行的计算机程序;其中,所述申威处理器,存储器通过所述总线完成相互间的通信;所述申威处理器执行所述计算机程序时实现上述方法。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被申威处理器执行时实现上述方法。由上述技术方案可知,本专利技术实施例提供的一种基于申威架构的进程间通信的统计调试方法及装置,通过封装进程通信发送函数,并在封装函数中增加进程通信的按模块的统计调试功能,在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,实现了统计查看各进本文档来自技高网
...

【技术保护点】
1.一种基于申威架构的进程间通信的统计调试方法,其特征在于,包括:根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。

【技术特征摘要】
1.一种基于申威架构的进程间通信的统计调试方法,其特征在于,包括:根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块标识ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能;在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数统计当前模块所调用的进程通信函数的相关信息;其中,所统计的当前模块所调用的进程通信函数的相关信息,至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数累加和目的进程名称。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据用户输入的第二指令,新增命令行控制所述进程通信的按模块的统计调试功能的开启或关闭,以及查看或清除所统计的当前模块所调用的进程通信函数的相关信息。3.根据权利要求1所述的方法,其特征在于,所封装的进程通信发送函数为套接字发送函数。4.根据权利要求1所述的方法,其特征在于,所述根据用户输入的第一指令,封装进程通信发送函数,在所述进程通信发送函数中新增加模块ID、调用函数名称、调用函数行号和目的进程名称四个函数入参,并在所封装的进程通信发送函数增加进程通信的按模块的统计调试功能,包括:创建结构体并声明全局变量结构体数组,其中,创建的结构体成员至少包括:模块ID、模块名称、调用函数名称、调用函数行号、调用次数和、目的进程名称;声明的全局变量结构体数组以最大模块ID为下标,对发送方向的进程通信消息进行统计与记录,同时声明的全局变量作为标志位控制进程通信的按模块的统计调试功能是否开启;相应地,所述在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以使所封装的进程通信发送函数将模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参,统计当前模块所调用的进程通信函数的相关信息,包括:在申威设备的需要进程通信的各模块函数中均调用所封装的进程通信发送函数,以将当前模块的模块ID、调用函数名称、调用函数行号和目的进程名称四个函数作为入参传入所封装的进程通信发送函数,以使所封装的进程通信发送函数以当前模块的模块ID作为声明的全局变量结构体数组的下标,统计当前模块所调用的进程通信函数的相关信息到声明的全局变量结构体数组中。5.一种基于申威架构的进程间通信的统...

【专利技术属性】
技术研发人员:高福亮
申请(专利权)人:北京中科网威信息技术有限公司
类型:发明
国别省市:北京,11

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

1