IO数据流处理方法、装置、存储介质和终端制造方法及图纸

技术编号:19177051 阅读:20 留言:0更新日期:2018-10-17 00:18
本发明专利技术提供了一种IO数据流处理方法、装置、存储介质和终端,本发明专利技术提供的IO数据流处理方法包括:获取IO内存缓存池中的内存缓存块;接收IO操作对应的数据流;根据所述IO操作的类型把所述数据流封装成数据结构;把所述数据结构存储于所述内存缓存块。本发明专利技术通过所述IO内存缓存池提高了IO端口的操作效率,减少了处理器不断生成新的字节数组的损耗;并且,可将IO操作对应的数据流封装为多种类型的数据结构之后再存储,可使后续IO数据流的使用更加便捷高效。

IO data stream processing method, device, storage medium and terminal

The invention provides an IO data stream processing method, device, storage medium and terminal. The IO data stream processing method provided by the invention includes: acquiring a memory buffer block in an IO memory buffer pool; receiving a data stream corresponding to an IO operation; encapsulating the data stream into a data structure according to the type of the IO operation; and encapsulating the number. The structure is stored in the memory cache block. The invention improves the operation efficiency of the IO port through the IO memory buffer pool, reduces the loss of the processor continuously generating new byte arrays, and can encapsulate the corresponding data stream of the IO operation into various types of data structures and then store them, thus making the use of the subsequent IO data stream more convenient and efficient.

【技术实现步骤摘要】
IO数据流处理方法、装置、存储介质和终端
本专利技术涉及信息处理技术,尤其是一种IO数据流处理方法、装置、存储介质和终端。
技术介绍
现有的部分计算机语言提供了简单IO操作(Input/Output,输入/输出操作)的API函数(ApplicationProgrammingInterface,应用程序编程接口),在读写文件或部分网络请求等场景下,可以使用IO数据流进行数据的字节读写;但直接用IO数据流进行读写操作时,处理器需要不断生成字节数组以充当存储数据流的容器,性能消耗较大;而且,生成的字节数组只支持字节的读写,后续还需要对存储的字节进行转换以便调用。基于以上问题,现有的IO操作函数在性能的消耗和使用便捷的方面,存在不足。
技术实现思路
本专利技术的目的旨在至少解决上述技术缺陷之一,特别是解决现有的IO操作对处理器的性能损耗的问题。本专利技术提供了一种IO数据流处理方法,包括:获取IO内存缓存池中的内存缓存块;接收IO操作对应的数据流;根据所述IO操作的类型把所述数据流封装成数据结构;把所述数据结构存储于所述内存缓存块。优选地,所述IO内存缓存池从物理内存中划分,通过链表方式存储所述内存缓存块。优选地,所述获取IO内存缓存池中的内存缓存块,包括:判断所述IO内存缓存池中是否有可用的内存缓存块;若是,从所述IO内存缓存池中获取一块内存缓存块;若否,从物理内存中申请一块内存缓存块作为IO内存缓存池的内存缓存块,获取该内存缓存块。优选地,所述从物理内存中申请一块内存缓存块作为IO内存缓存池的内存缓存块之后,还包括:记录所述申请的一块内存缓存块的申请时间点;确认当前时间点与所述申请时间点之间的距离大于预置时长;若物理内存的已使用容量大于第一预置值;确认所述申请的一块内存缓存块被释放,将所述申请的一块内存缓存块重新加入物理内存;若物理内存的已使用容量小于等于第一预置值且大于第二预置值;确认所述申请的一块内存缓存块被释放,获取被释放的持续时间,若持续时间大于预定时长,将所述申请的一块内存缓存块重新加入物理内存。优选地,所述从内存中申请一块内存缓存块作为IO内存缓存池的内存缓存块之后,还包括:把申请的一块内存缓存块记录为额外内存缓存块的区域;额外内存缓存块的区域表示从物理内存初始划分给IO内存缓存池外,IO内存缓存池新增的内存缓存块区域;若物理内存的已使用容量大于第三预置值;确认额外内存缓存块的区域中被释放的内存缓存块,将所述被释放的内存缓存块重新加入物理内存。优选地,所述获取IO内存缓存池中的内存缓存块之前,还包括:接收IO操作指令。优选地,所述接收IO操作指令之后,还包括:判断IO操作指令中的IO操作是否超时;若是,则抛出异常;若否,确认IO操作指令需写入数据时,继续所述获取IO内存缓存池中的内存缓存块的步骤。优选地,所述接收IO操作指令之后,还包括:启动异步监听子线程;所述判断IO操作指令中的IO操作是否超时,包括:判断所述异步监听子线程监听的所述IO操作指令对应的IO操作是否超时。本专利技术还提出一种IO数据流处理装置,包括:获取模块,用于获取IO内存缓存池中的内存缓存块;接收模块,用于接收IO操作对应的数据流;封装模块,用于根据所述IO操作的类型把所述数据流封装成数据结构;存储模块,用于把所述数据结构存储于所述内存缓存块。本专利技术还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述任一项所述IO数据流处理方法的步骤。本专利技术还提出一种终端,所述终端包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现前述任一项所述IO数据流处理方法的步骤。本专利技术的有益效果如下:1、本专利技术通过所述IO内存缓存池提高了IO端口的操作效率,减少了处理器不断生成新的字节数组的损耗;并且,可将IO操作对应的数据流封装为多种类型的数据结构之后再存储,可使后续IO数据流的使用更加便捷高效。2、本专利技术可在所述IO内存缓存池空间不足的情况下,从普通内存中申请内存缓存块,所述普通内存可为物理内存等常用内存形式,以确保IO操作的效率;还可根据普通内存的已使用容量确定是否需要将申请的内存缓存块重新加入普通内存中,以避免物理内存不足影响处理器的整体处理效率。3、本专利技术通过同步超时处理或异步超时处理机制,可使IO操作更加安全,不会出现线程占用卡死处理器的情况。本专利技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本专利技术IO数据流处理方法第一实施例的流程示意图;图2为本专利技术IO数据流处理方法第二实施例的流程示意图;图3为本专利技术IO数据流处理方法又一实施例的流程示意图;图4为本专利技术所述终端的实施例示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”到另一元件时,它可以直接连接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。本专利技术提出一种IO数据流处理方法,用于提高IO端口的操作效率,如图1所示的第一实施例,包括如下步骤:步骤S10:获取IO内存缓存池中的内存缓存块;步骤S20:接收IO操作对应的数据流;步骤S30:根据所述IO操作的类型把所述数据流封装成数据结构;步骤S40:把所述数据结构存储于所述内存缓存块。其中,每个步骤具体如下:步骤S10:获取IO内存缓存池中的内存缓存块。内存用于暂存CPU中的运算数据,计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。本步骤预先在内存中申请一块用于暂存IO接口数据的内存池作为IO内存缓存池,所有的IO操作都必须从所述IO内存缓存池中申请字节数组对象来进行操作,从而避免IO操作中创建字节数组对象的性能损耗,达到利用IO内存缓存池的存储空间换取IO操作效率的目的。获取的所述内存缓存块为所述IO内存缓存池中部分或全部的存储空间,用于暂存后续IO操作的各种指令和读写数据。步骤本文档来自技高网
...

【技术保护点】
1.一种IO数据流处理方法,其特征在于,包括:获取IO内存缓存池中的内存缓存块;接收IO操作对应的数据流;根据所述IO操作的类型把所述数据流封装成数据结构;把所述数据结构存储于所述内存缓存块。

【技术特征摘要】
1.一种IO数据流处理方法,其特征在于,包括:获取IO内存缓存池中的内存缓存块;接收IO操作对应的数据流;根据所述IO操作的类型把所述数据流封装成数据结构;把所述数据结构存储于所述内存缓存块。2.根据权利要求1所述的处理方法,其特征在于,所述IO内存缓存池从物理内存中划分,通过链表方式存储所述内存缓存块。3.根据权利要求1所述的处理方法,其特征在于,所述获取IO内存缓存池中的内存缓存块,包括:判断所述IO内存缓存池中是否有可用的内存缓存块;若是,从所述IO内存缓存池中获取一块内存缓存块;若否,从物理内存中申请一块内存缓存块作为IO内存缓存池的内存缓存块,获取该内存缓存块。4.根据权利要求3所述的处理方法,其特征在于,所述从物理内存中申请一块内存缓存块作为IO内存缓存池的内存缓存块之后,还包括:记录所述申请的一块内存缓存块的申请时间点;确认当前时间点与所述申请时间点之间的距离大于预置时长;若物理内存的已使用容量大于第一预置值;确认所述申请的一块内存缓存块被释放,将所述申请的一块内存缓存块重新加入物理内存;若物理内存的已使用容量小于等于第一预置值且大于第二预置值;确认所述申请的一块内存缓存块被释放,获取被释放的持续时间,若持续时间大于预定时长,将所述申请的一块内存缓存块重新加入物理内存。5.根据权利要求3所述的处理方法,其特征在于,所述从物理内存中申请一块内存缓存块作为IO内存缓存池的内存缓存块之后,还包括:把申请的一块内存缓存块记录为额外内存缓存块的区域;额外内存缓存块的区域表示...

【专利技术属性】
技术研发人员:张嘉俊
申请(专利权)人:广州优视网络科技有限公司
类型:发明
国别省市:广东,44

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

1