CN117667763A - 数据处理方法、装置、电子设备和可读存储介质 - Google Patents
数据处理方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN117667763A CN117667763A CN202311641798.3A CN202311641798A CN117667763A CN 117667763 A CN117667763 A CN 117667763A CN 202311641798 A CN202311641798 A CN 202311641798A CN 117667763 A CN117667763 A CN 117667763A
- Authority
- CN
- China
- Prior art keywords
- data
- memory block
- target
- thread
- flag bit
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000001514 detection method Methods 0.000 claims description 67
- 238000007405 data analysis Methods 0.000 claims description 50
- 239000000872 buffer Substances 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备和可读存储介质,涉及计算机技术领域,在接收到目标数据之后,本申请实施例可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本申请实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置、电子设备和可读存储介质。
背景技术
随着计算机技术的发展,目前的计算机已经可以实现多任务的并行处理。在相关技术中,往往会使用操作系统所提供的特性以实现多线程同步,通过使用自旋锁、互斥锁等接口保证多线程所操作内存的唯一性。
但是,在要求应用程序实现高性能的多线程环境下,还存在业务线程被系统或其他应用程序中断的问题。在中断之后的同步操作,还会导致线程栈切换、缓存线切换等导致处理器内部加速的失效的问题。
因此,在计算机运行多个程序的情况下,如何保证业务线程不被中断、提高单个应用程序的性能是目前亟需解决的问题。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法、装置、电子设备和可读存储介质,以保证业务线程不被中断、提高单个应用程序的性能。
第一方面,提供了一种数据处理方法,所述方法应用于电子设备,所述方法包括:
接收目标数据;
轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针;
响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;
根据所述状态标志位对应的内存块指针,确定目标内存块;以及
基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
在一些实施例中,所述方法还包括:
初始化设备内存;
所述初始化设备内存,包括:
根据预定内存需求和内存块容量,从所述设备内存的各内存块中确定各分配内存块。
在一些实施例中,在所述从所述设备内存的各内存块中确定各分配内存块之后,所述方法还包括:
获取处理器的缓存大小,所述处理器的缓存大小为智能缓存或者三级缓存;
确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存,所述合计占用缓存用于表征各所述状态标志位和各所述内存块指针占用处理器缓存的合计大小;
响应于所述合计占用缓存小于等于所述处理器的缓存大小,为各所述分配内存块设置状态标志位和内存块指针;以及
响应于所述合计占用缓存大于所述处理器的缓存大小,基于所述处理器的缓存大小确定可形成的内存块缓冲器数量,并为各所述分配内存块设置状态标志位和内存块指针;
其中,各所述内存块指针为固定值,各所述状态标志位间隔字节数为相同数值。
在一些实施例中,所述分配内存块的数据结构还包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
在一些实施例中,所述预定线程包括数据包接收与重组线程;
所述轮询设备内存中各分配内存块,包括:
基于所述数据包接收与重组线程,轮询设备内存中各分配内存块。
在一些实施例中,所述预定线程还包括数据解析线程和数据检测线程;
所述基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程,包括:
基于所述数据包接收与重组线程,对所述目标数据进行重组操作,确定第一数据;
将所述第一数据写入所述目标内存块中,并将所述状态标志位改写为数据包接收与重组完成状态;
基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据;
将所述第二数据写入所述目标内存块中,并将所述状态标志位改写为数据解析完成状态;以及
基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,并将所述状态标志位改写为空闲状态。
在一些实施例中,所述基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据,包括:
基于所述数据解析线程,轮询各分配内存块;
响应于所述状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第一数据进行数据解析,确定第二数据。
在一些实施例中,所述数据解析至少包括协议解析、元组数据解析、传输文件还原和解析日志输出。
在一些实施例中,所述基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,包括:
基于所述数据检测线程,轮询各分配内存块;
响应于所述状态标志位为数据解析完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第二数据进行数据检测,确定第三数据。
在一些实施例中,所述数据检测至少包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
在一些实施例中,所述方法还包括:
根据初始化后的设备内存和预定比例,确定所述预定线程中各线程的初始化数量,以初始化线程。
第二方面,提供了一种数据处理装置,所述装置应用于电子设备,所述装置包括:
接收模块,用于接收目标数据;
轮询模块,用于轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针;
状态锁定模块,用于响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;
确定模块,用于根据所述状态标志位对应的内存块指针,确定目标内存块;以及
数据处理模块,用于基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
在一些实施例中,所述装置还包括:
第一初始化模块,用于初始化设备内存;
所述第一初始化模块,具体用于:
根据预定内存需求和内存块容量,从所述设备内存的各内存块中确定各分配内存块。
在一些实施例中,所述装置还包括:
获取模块,用于获取处理器的缓存大小,所述处理器的缓存大小为智能缓存或者三级缓存;
缓存计算模块,用于确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存,所述合计占用缓存用于表征各所述状态标志位和各所述内存块指针占用处理器缓存的合计大小;
第一配置模块,用于响应于所述合计占用缓存小于等于所述处理器的缓存大小,为各所述分配内存块设置状态标志位和内存块指针;以及
第二配置模块,用于响应于所述合计占用缓存大于所述处理器的缓存大小,基于所述处理器的缓存大小确定可形成的内存块缓冲器数量,并为各所述分配内存块设置状态标志位和内存块指针;
其中,各所述内存块指针为固定值,各所述状态标志位间隔字节数为相同数值。
在一些实施例中,所述分配内存块的数据结构还包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
在一些实施例中,所述预定线程包括数据包接收与重组线程;
所述轮询模块,具体用于:
基于所述数据包接收与重组线程,轮询设备内存中各分配内存块。
在一些实施例中,所述预定线程还包括数据解析线程和数据检测线程;
所述数据处理模块,具体用于:
基于所述数据包接收与重组线程,对所述目标数据进行重组操作,确定第一数据;
将所述第一数据写入所述目标内存块中,并将所述状态标志位改写为数据包接收与重组完成状态;
基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据;
将所述第二数据写入所述目标内存块中,并将所述状态标志位改写为数据解析完成状态;以及
基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,并将所述状态标志位改写为空闲状态。
在一些实施例中,所述数据处理模块,具体用于:
基于所述数据解析线程,轮询各分配内存块;
响应于所述状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第一数据进行数据解析,确定第二数据。
在一些实施例中,所述数据解析至少包括协议解析、元组数据解析、传输文件还原和解析日志输出。
在一些实施例中,所述数据处理模块,具体用于:
基于所述数据检测线程,轮询各分配内存块;
响应于所述状态标志位为数据解析完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第二数据进行数据检测,确定第三数据。
在一些实施例中,所述数据检测至少包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
在一些实施例中,所述装置还包括:
第二初始化模块,用于根据初始化后的设备内存和预定比例,确定所述预定线程中各线程的初始化数量,以初始化线程。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。
通过本申请实施例,在接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本申请实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。
附图说明
通过以下参照附图对本申请实施例的描述,本申请实施例的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1为本申请实施例的数据处理方法的流程图;
图2为本申请实施例分配内存块的数据结构的示意图;
图3为本申请实施例的另一种数据处理方法的流程图;
图4为本申请实施例数据解析线程处理第一数据时的流程示意图;
图5为本申请实施例的数据处理方法的流程示意图;
图6为本申请实施例的数据处理装置的结构示意图;
图7为本申请实施例的电子设备的结构示意图。
具体实施方式
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则在整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了保证业务线程不被中断、提高单个应用程序的性能,本申请实施例提供一种数据处理方法,该数据处理方法可以应用于电子设备,其中,电子设备可以是终端或者服务器,终端可以是智能手机、平板电脑或者个人计算机(Personal Computer,PC)等,服务器可以是单个服务器,也可以是以分布式方式配置的服务器集群,还可以是云服务器。
通过该数据处理方法,可以预先配置设备内存,以确定设备内存中各分配内存块,其中,分配内存块的数据结构至少包括分配内存块的状态标志位和分配内存块的内存块指针。
当接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的分配内存块。当轮询到状态标志位为空闲状态的分配内存块时,电子设备可以基于预先设置的锁定指令将该空闲状态的分配内存块锁定为忙碌状态。这样,本申请实施例通过私有化配置内存块的数据结构,可以实现及时抢占处于空闲状态的分配内存块并执行预定处理流程,保证了业务线程不被中断、提高单个应用程序的性能。
具体的,如图1所示,本申请实施例的数据处理方法可以执行为如下步骤:
在步骤11,接收目标数据。
本申请实施例的数据处理方法是用于提高目标应用程序性能的方法,因此,目标数据是目标应用程序所能处理的数据。
在一种优选的实施方式中,在接收目标数据之前,本申请实施例还可以初始化设备内存,以确定目标数据对应的应用程序(即目标应用程序)私有化的内存块,具体的,该过程可以执行为:根据预定内存需求和内存块容量,从设备内存的各内存块中确定各分配内存块。
其中,预定内存需求用于表征目标应用程序运行过程中预计需要占用的内存大小,内存块容量用于表征设备内存中每个内存块的实际大小。通过预定内存需求和内存块容量,可以确定目标应用程序运行过程中预计需要占用的内存块数量,该预计需要占用的内存块数量即为分配内存块的数量。
在一种优选的实施方式中,确定各个分配内存块之后,本申请实施例可以为每个分配内存块设置状态标志位和内存块指针。其中,状态标志位可以用于表征对应分配内存块的工作状态,例如忙碌状态、空闲状态等。内存块指针用于标识对应的分配内存块,当目标应用程序运行时,电子设备可以通过内存块指针确定对应的分配内存块的位置。
具体的,该过程可以执行为:获取处理器(Central Processing Unit,CPU)的缓存大小,然后确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存。响应于合计占用缓存小于等于处理器的缓存大小,为各分配内存块设置状态标志位和内存块指针,响应于合计占用缓存大于处理器的缓存大小,基于处理器的缓存大小确定可形成的内存块缓冲器数量,并为各分配内存块设置状态标志位和内存块指针。
其中,处理器的缓存大小为智能缓存或者三级缓存,合计占用缓存用于表征各状态标志位和各内存块指针占用处理器缓存的合计大小,各内存块指针为固定值,各状态标志位间隔字节数为相同数值。
也就是说,本申请实施例可以获取CPU的智能缓存(Smart Cache)大小或者三级缓存的大小,通过计算各内存块指针和状态标志位的合计占用缓存,判断合计占用缓存是否小于等于CPU的缓存大小。若合计占用缓存小于等于CPU的缓存大小,则为每个分配内存块添加内存块指针和状态标志位,若合计占用缓存大于CPU的缓存大小,则动态计算实际可形成的内存块缓冲器(buffer)数量。最终使内存块缓冲器的内存块指针为固定值,并且每个分配内存块的状态标志位间隔字节数均相等,这样,可以有效的利用处理器缓存线进行性能加速。
在步骤12,轮询设备内存中各分配内存块。
其中,分配内存块为所述目标数据对应的应用程序私有化的内存块,分配内存块的数据结构至少包括分配内存块的状态标志位和分配内存块的内存块指针。
在一种优选的实施方式中,分配内存块的数据结构还可以包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
也就是说,在初始化设备内存时,本申请实施例可以将分配内存块的数据结构配置为:状态标志位、内存块指针、分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议(IP,Internet Protocol)地址、源端口、目的互联网协议地址、目的端口、使用协议。
具体的,如图2所示,图2为本申请实施例提供的一种分配内存块数据结构的示意图。
由图2可知,经过私有化配置(即初始化)后确定的分配内存块的数据结构可以包括:内存块指针21、状态标志位22、分配内存块总容量23、内存块当前占用容量24、数据缓冲器25、源IP地址26、源端口27、目的IP地址28、目的端口29、使用协议210。
在一种优选的实施方式中,预定线程可以包括数据包接收与重组线程,本申请实施例可以通过数据包接收与重组线程接收目标数据,在接收到目标数据之后,本申请实施例可以基于数据包接收与重组线程对各分配内存块进行轮询,具体的,该过程可以执行为:基于数据包接收与重组线程,轮询设备内存中各分配内存块。
通过轮询操作,可以使得数据包接收与重组线程能够快速抢占空闲的分配内存块,提高了处理目标数据的效率。
在步骤13,响应于状态标志位为空闲状态,基于预先设置的锁定指令,将状态标志位锁定为忙碌状态。
其中,预先设置的锁定指令可以是lock cmpxchg指令,也可以是间接实现的相关原子(atomic)操作。
基于上述实施方式可知,当数据包接收与重组线程轮询到处于空闲状态的分配内存块时,本申请实施例可以通过lock cmpxchg指令或者间接实现的相关atomic操作,将该分配内存块的状态标志位锁定为忙碌状态,以实现抢占该分配内存块的目的。
在步骤14,根据状态标志位对应的内存块指针,确定目标内存块。
在本申请实施例中,由于分配内存块均对应有内存块指针和状态标志位,因此,当确定状态标志位后,本申请实施例可以根据确定的状态标志位进一步确定对应的内存块指针,进而可以确定该内存块指针所对应的目标内存块。
在步骤15,基于目标内存块和预定线程,对目标数据执行预定处理流程。
通过本申请实施例,在接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本申请实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。
在一种优选的实施方式中,预定线程中除了数据包接收与重组线程以外,还可以包括数据解析线程和数据检测线程。
进一步的,如图3所示,上述步骤15具体可以包括如下步骤:
在步骤31,基于数据包接收与重组线程,对目标数据进行重组操作,确定第一数据。
其中,对目标数据的重组操作指的是将以数据包形式接收到的目标数据进行重组,得到完整的目标数据(即第一数据)。
在步骤32,将第一数据写入目标内存块中,并将状态标志位改写为数据包接收与重组完成状态。
在本申请实施例中,当第一数据被写入目标内存块中后,表征数据包接收与重组线程针对目标数据的处理完成,此时,电子设备可以通过数据包接收与重组线程,将状态标志位改写为数据包接收与重组完成状态。
相较于改写为空闲状态,本申请实施例通过将状态标志位改写为数据包接收与重组完成状态,可以使得该状态下的分配内存块只能被特定类别的线程(数据解析线程)占用,避免了其它类别线程占用而导致的程序中断的问题。
在步骤33,基于数据解析线程,对目标内存块中的第一数据进行数据解析,确定第二数据。
其中,数据解析线程用于对重组后的目标数据(第一数据)进行解析,以使得后续线程(数据检测线程)可以对解析后的目标数据进行进一步处理。
在一种优选的实施方式中,上述步骤33具体可以执行为:基于数据解析线程,轮询各分配内存块,然后响应于状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将状态标志位锁定为忙碌状态,然后对目标内存块中的第一数据进行数据解析,确定第二数据。
其中,第二数据为解析后的第一数据,具体的,数据解析过程可以包括协议解析、元组数据解析、传输文件还原和解析日志输出。
同时,数据解析线程除了对目标数据进行数据解析以外,还可以执行:源IP地址写入、源端口写入、目的IP地址写入、目的端口写入、使用协议写入。
例如,如图4所示,图4为本申请实施例数据解析线程处理第一数据时的流程示意图,具体包括如下步骤:
在步骤41,初始化设备内存。
在本申请实施例中,当设备内存初始化成功后,设备内存即为对应应用程序的私有化内存块,数据解析线程可以基于该私有化内存块进行数据解析。
在步骤42,基于数据解析线程轮询各分配内存块,判断分配内存块的状态是否为数据包接收与重组完成状态,若分配内存块的状态为数据包接收与重组完成状态,则执行步骤43,若分配内存块的状态为非数据包接收与重组完成状态,则继续轮询。
在步骤43,基于预先设置的锁定指令,将状态标志位锁定为忙碌状态,然后对目标内存块中的第一数据进行数据解析,确定第二数据,将第二数据写入数据缓冲器中,并将状态标志位改写为数据解析完成状态。
在步骤44,源IP地址写入。
在步骤45,源端口写入。
在步骤46,目的IP地址写入。
在步骤47,目的端口写入。
在步骤48,使用协议写入。
通过本申请实施例,当设备内存初始化完成后,电子设备可以基于数据解析线程轮询各分配内存块,当确定状态标志位为数据包接收与重组完成状态时,电子设备可以基于预先设置的锁定指令,将状态标志位锁定为忙碌状态,然后对目标内存块中的第一数据进行数据解析,确定第二数据,将第二数据写入数据缓冲器中,并将状态标志位改写为数据解析完成状态。这样,数据解析线程可以及时的对第一数据进行处理,而且,此过程不会被其它应用程序或者其它类别的线程中断,提高了数据处理的效率和应用程序的性能。
在步骤34,将第二数据写入目标内存块中,并将状态标志位改写为数据解析完成状态。
在本申请实施例中,当第二数据被写入目标内存块中后,表征数据解析线程针对第一数据的处理完成,此时,电子设备可以通过数据解析线程,将状态标志位改写为数据解析完成状态。
相较于改写为空闲状态,本申请实施例通过将状态标志位改写为数据解析完成状态,可以使得该状态下的分配内存块只能被特定类别的线程(数据解析线程)占用,避免了其它类别线程占用而导致的程序中断的问题。
在步骤35,基于数据检测线程,对目标内存块中的第二数据进行数据检测,确定第三数据,并将状态标志位改写为空闲状态。
其中,数据检测线程用于对数据解析后的目标数据(第二数据)进行检测,以确定检测结果。
在一种优选的实施方式中,上述步骤35具体可以执行为:基于数据检测线程,轮询本地内存中各内存块,然后响应于状态标志位为数据解析完成状态,基于预先设置的锁定指令,将状态标志位锁定为忙碌状态,然后对目标内存块中的第二数据进行数据检测,确定第三数据。
其中,第三数据为针对第二数据进行检测后得到的检测结果,具体的,数据检测过程可以包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
也就是说,第三数据可以是报文规则匹配结果、恶意文件检测结果、关键字检测结果和检测日志等数据。
在本申请实施例中,当确定第三数据后,表征数据检测线程针对第二数据的处理完成,即电子设备针对目标数据的预定处理流程完成,因此,电子设备可以基于数据检测线程将状态标志位改写为空闲状态。
进一步的,在基于数据检测线程将状态标志位改写为空闲状态后,若应用程序继续运行,则被改写为空闲状态的分配内存块可以继续被数据包接收与重组线程占用,以重复上述步骤。若应用程序停止运行,则电子设备可以释放分配内存块(即解除分配内存块的私有化数据结构),以供其它应用程序使用。
通过本申请实施例,在接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本申请实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。
在一种优选的实施方式中,本申请实施例在对设备内存进行初始化处理之后,还可以针对各类预定线程的数量进行初始化配置,具体的,该过程可以执行为:根据初始化后的设备内存和预定比例,确定预定线程中各线程的初始化数量,以初始化线程。
其中,预定比例可以是根据实际情况设置的适用比例,具体的,由于各类预定线程所需要处理的数量不同,因此,各类预定线程每进行一次数据处理所需要的时间会有所不同。为了保证处理数据的同步性,本申请实施例可以基于处理器的核心数量和预定比例,确定预定线程中各线程的初始化数量,以实现初始化线程。例如,若预定线程中包括数据包接收与重组线程、数据解析线程和数据检测线程,则上述三类线程的预定比例可以是1:1:2,也可以是2:3:3等等。
也就是说,在本申请实施例中,各类预定线程(例如数据包接收与重组线程、数据解析线程和数据检测线程)可以是一个,也可以是多个。通过初始化线程,可以合理的预分配各类线程的初始化数量,提高数据处理的效率。
综上所述,本申请实施例可以通过私有化配置设备内存,保证应用程序运行过程中不被中断,提高应用程序的性能。
如图5所示,图5为本申请实施例提供的一种数据处理方法的流程示意图。其中,该示意图包括数据包接收与重组线程51、数据解析线程52、数据检测线程53和分配内存块54。
在对目标数据处理之前,本申请实施例可以针对设备内存进行初始化处理,以确定各分配内存块54,同时,还可以基于处理器核心数量以及预定比例,对各预定线程的初始化数量进行配置,以确定数据包接收与重组线程51、数据解析线程52和数据检测线程53。
在对目标数据进行处理时,数据包接收与重组线程51可以接收目标数据,然后轮询各分配内存块54,并基于分配内存块54中的状态标志位判断各分配内存块54的状态。当数据包接收与重组线程51轮询到处于空闲状态的分配内存块54时,数据包接收与重组线程51可以获取该分配内存块54的内存块指针以确定该分配内存块54位置,并将内存块指针写入数据缓冲器并将状态标志位锁定为忙碌状态。
然后,数据包接收与重组线程51可以针对目标数据进行数据重组操作,并将重组后的目标数据(第一数据)写入内存块当前占用容量,同时,数据包接收与重组线程51可以将分配内存块54的状态标志位改写为数据包接收与重组完成状态。
数据解析线程52在初始化之后,可以反复轮询各分配内存块54,并基于分配内存块54中的状态标志位判断各分配内存块54的状态。当数据解析线程52轮询到处于数据包接收与重组完成状态的分配内存块54时,数据解析线程52可以获取该分配内存块54的内存块指针以确定该分配内存块54位置,并将内存块指针写入数据缓冲器并将状态标志位锁定为忙碌状态。
然后,数据解析线程52可以针对重组后的目标数据(第一数据)进行数据解析,以确定第二数据,同时,在数据解析完成后,数据解析线程52可以将分配内存块54的状态标志位改写为数据解析完成状态。
同时,数据解析线程52在初始化之后,还可以将源IP地址、源端口、目的IP地址、目的端口、使用协议写入分配内存块54。
数据检测线程53在初始化之后,可以反复轮询各分配内存块54,并基于分配内存块54中的状态标志位判断各分配内存块54的状态。当数据检测线程53轮询到处于数据解析完成状态的分配内存块54时,数据检测线程53可以获取该分配内存块54的内存块指针以确定该分配内存块54位置,并将内存块指针写入数据缓冲器并将状态标志位锁定为忙碌状态。
然后,数据检测线程53可以针对解析后的目标数据(第二数据)进行数据检测,以确定检测结果(第三数据),同时,在数据检测完成后,数据检测线程53可以将分配内存块54的状态标志位改写为空闲状态。
进一步的,数据检测线程53在确定检测结果后,数据检测线程53可以输出该检测结果。
另外,在基于数据检测线程53将分配内存块54的状态标志位改写为空闲状态后,若应用程序继续运行,则被改写为空闲状态的分配内存块54可以继续被数据包接收与重组线程51占用,以重复上述流程。若应用程序停止运行,则电子设备可以释放分配内存块54(即解除分配内存块的私有化数据结构),以供其它应用程序使用。
通过本申请实施例,在接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本申请实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。
基于相同的技术构思,本申请实施例还提供了一种数据处理装置,如图6所示,该装置包括:接收模块61、轮询模块62、状态锁定模块63、确定模块64和数据处理模块65。
接收模块61,用于接收目标数据。
轮询模块62,用于轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针。
状态锁定模块63,用于响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态。
确定模块64,用于根据所述状态标志位对应的内存块指针,确定目标内存块。
数据处理模块65,用于基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
在一些实施例中,所述装置还包括:
第一初始化模块,用于初始化设备内存;
所述第一初始化模块,具体用于:
根据预定内存需求和内存块容量,从所述设备内存的各内存块中确定各分配内存块。
在一些实施例中,所述装置还包括:
获取模块,用于获取处理器的缓存大小,所述处理器的缓存大小为智能缓存或者三级缓存;
缓存计算模块,用于确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存,所述合计占用缓存用于表征各所述状态标志位和各所述内存块指针占用处理器缓存的合计大小;
第一配置模块,用于响应于所述合计占用缓存小于等于所述处理器的缓存大小,为各所述分配内存块设置状态标志位和内存块指针;以及
第二配置模块,用于响应于所述合计占用缓存大于所述处理器的缓存大小,基于所述处理器的缓存大小确定可形成的内存块缓冲器数量,并为各所述分配内存块设置状态标志位和内存块指针;
其中,各所述内存块指针为固定值,各所述状态标志位间隔字节数为相同数值。
在一些实施例中,所述分配内存块的数据结构还包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
在一些实施例中,所述预定线程包括数据包接收与重组线程;
所述轮询模块62,具体用于:
基于所述数据包接收与重组线程,轮询设备内存中各分配内存块。
在一些实施例中,所述预定线程还包括数据解析线程和数据检测线程;
所述数据处理模块65,具体用于:
基于所述数据包接收与重组线程,对所述目标数据进行重组操作,确定第一数据;
将所述第一数据写入所述目标内存块中,并将所述状态标志位改写为数据包接收与重组完成状态;
基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据;
将所述第二数据写入所述目标内存块中,并将所述状态标志位改写为数据解析完成状态;以及
基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,并将所述状态标志位改写为空闲状态。
在一些实施例中,所述数据处理模块65,具体用于:
基于所述数据解析线程,轮询各分配内存块;
响应于所述状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第一数据进行数据解析,确定第二数据。
在一些实施例中,所述数据解析至少包括协议解析、元组数据解析、传输文件还原和解析日志输出。
在一些实施例中,所述数据处理模块65,具体用于:
基于所述数据检测线程,轮询各分配内存块;
响应于所述状态标志位为数据解析完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第二数据进行数据检测,确定第三数据。
在一些实施例中,所述数据检测至少包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
在一些实施例中,所述装置还包括:
第二初始化模块,用于根据初始化后的设备内存和预定比例,确定所述预定线程中各线程的初始化数量,以初始化线程。
通过本申请实施例,在接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本申请实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。
图7是本申请实施例的电子设备的示意图。如图7所示,图7所示的电子设备为通用地址查询装置,其包括通用的计算机硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的指令,从而执行如上所述的本申请实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(I/O)装置75。输入/输出(I/O)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置75通过输入/输出(I/O)控制器76与系统相连。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
也可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
本申请的另一实施例涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指定相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域技术人员而言,本申请可以有各种改动和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法包括:
接收目标数据;
轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针;
响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;
根据所述状态标志位对应的内存块指针,确定目标内存块;以及
基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
初始化设备内存;
所述初始化设备内存,包括:
根据预定内存需求和内存块容量,从所述设备内存的各内存块中确定各分配内存块。
3.根据权利要求2所述的方法,其特征在于,在所述从所述设备内存的各内存块中确定各分配内存块之后,所述方法还包括:
获取处理器的缓存大小,所述处理器的缓存大小为智能缓存或者三级缓存;
确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存,所述合计占用缓存用于表征各所述状态标志位和各所述内存块指针占用处理器缓存的合计大小;
响应于所述合计占用缓存小于等于所述处理器的缓存大小,为各所述分配内存块设置状态标志位和内存块指针;以及
响应于所述合计占用缓存大于所述处理器的缓存大小,基于所述处理器的缓存大小确定可形成的内存块缓冲器数量,并为各所述分配内存块设置状态标志位和内存块指针;
其中,各所述内存块指针为固定值,各所述状态标志位间隔字节数为相同数值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述分配内存块的数据结构还包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
5.根据权利要求1所述的方法,其特征在于,所述预定线程包括数据包接收与重组线程;
所述轮询设备内存中各分配内存块,包括:
基于所述数据包接收与重组线程,轮询设备内存中各分配内存块。
6.根据权利要求5所述的方法,其特征在于,所述预定线程还包括数据解析线程和数据检测线程;
所述基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程,包括:
基于所述数据包接收与重组线程,对所述目标数据进行重组操作,确定第一数据;
将所述第一数据写入所述目标内存块中,并将所述状态标志位改写为数据包接收与重组完成状态;
基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据;
将所述第二数据写入所述目标内存块中,并将所述状态标志位改写为数据解析完成状态;以及
基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,并将所述状态标志位改写为空闲状态。
7.根据权利要求6所述的方法,其特征在于,所述基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据,包括:
基于所述数据解析线程,轮询各分配内存块;
响应于所述状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第一数据进行数据解析,确定第二数据。
8.根据权利要求7所述的方法,其特征在于,所述数据解析至少包括协议解析、元组数据解析、传输文件还原和解析日志输出。
9.根据权利要求6所述的方法,其特征在于,所述基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,包括:
基于所述数据检测线程,轮询各分配内存块;
响应于所述状态标志位为数据解析完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
对所述目标内存块中的所述第二数据进行数据检测,确定第三数据。
10.根据权利要求9所述的方法,其特征在于,所述数据检测至少包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
11.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据初始化后的设备内存和预定比例,确定所述预定线程中各线程的初始化数量,以初始化线程。
12.一种数据处理装置,其特征在于,所述装置包括:
接收模块,用于接收目标数据;
轮询模块,用于轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针;
状态锁定模块,用于响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;
确定模块,用于根据所述状态标志位对应的内存块指针,确定目标内存块;以及
数据处理模块,用于基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
13.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641798.3A CN117667763A (zh) | 2023-12-01 | 2023-12-01 | 数据处理方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641798.3A CN117667763A (zh) | 2023-12-01 | 2023-12-01 | 数据处理方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667763A true CN117667763A (zh) | 2024-03-08 |
Family
ID=90076395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311641798.3A Pending CN117667763A (zh) | 2023-12-01 | 2023-12-01 | 数据处理方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667763A (zh) |
-
2023
- 2023-12-01 CN CN202311641798.3A patent/CN117667763A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
US8381230B2 (en) | Message passing with queues and channels | |
US9787706B1 (en) | Modular architecture for analysis database | |
EP2406723B1 (en) | Scalable interface for connecting multiple computer systems which performs parallel mpi header matching | |
EP2802109B1 (en) | System and method of a shared memory hash table with notifications | |
US20090055831A1 (en) | Allocating Network Adapter Resources Among Logical Partitions | |
CA2424006A1 (en) | A technique to generically manage extensible correlation data | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US11347698B2 (en) | Garbage collection for hash-based data structures | |
CN111949568A (zh) | 一种报文处理方法、装置及网络芯片 | |
CN113407414A (zh) | 程序运行监测方法、装置、终端及存储介质 | |
US9251078B2 (en) | Acquiring remote shared variable directory information in a parallel computer | |
US20090182798A1 (en) | Method and apparatus to improve the effectiveness of system logging | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN115525417A (zh) | 数据通信方法、通信系统及计算机可读存储介质 | |
US8543722B2 (en) | Message passing with queues and channels | |
US7725591B2 (en) | Detecting a timeout of elements in an element processing system | |
CN116257471A (zh) | 一种业务处理方法及装置 | |
CN109791502B (zh) | 针对异构设备类型的对等分布式计算系统 | |
WO2023185335A1 (zh) | 一种崩溃聚类方法、装置、电子设备以及存储介质 | |
WO2024109068A1 (zh) | 程序监控方法、装置、电子设备和存储介质 | |
CN117667763A (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
US9659041B2 (en) | Model for capturing audit trail data with reduced probability of loss of critical data | |
EP3660675B1 (en) | Sharing data by a virtual machine | |
Orozco et al. | High throughput queue algorithms |
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 |