一种有限资源下数据缓冲方法和装置制造方法及图纸

技术编号:8271245 阅读:138 留言:0更新日期:2013-01-31 03:24
本发明专利技术提供一种有限资源下数据缓冲方法,包括:只建立一个缓冲区;使用原程序接口获取数据;将获取的所述数据复制到所述缓冲区;从所述缓冲区中取用数据。本发明专利技术还提供一种有限资源下数据缓冲装置,建立缓冲区模块只建立一个缓冲区;读取数据模块使用原程序接口获取数据;存入缓冲区模块将所述读取数据模块读取的数据复制到所述缓冲区;读取缓冲区模块从所述缓冲区中取用数据。本发明专利技术技术方案采取一个缓冲区,避免了有限资源的条件下,多缓冲区空间不足的问题,提升了程序性能。

【技术实现步骤摘要】
本专利技术涉及计算机软件优化技术,尤其涉及一种有限资源下数据缓冲方法和装置
技术介绍
缓冲区是一种性能优化技术,其方法为开辟多块内存区域,将数据依次复制到缓冲区,由于缓冲区中存有数据的副本,使得程序不必等待数据不再使用时才读取下一块数据,因此能够提闻程序的运行效率。但是,目前还没有一种在有限内存资源条件下使用缓冲区技术加速程序性能的方·法。
技术实现思路
本专利技术要解决的技术问题是提供一种有限资源下数据缓冲方法和装置,实现有限内存下提高运行效率。为了解决上述问题,本专利技术提供了一种有限资源下数据缓冲方法,包括只建立一个缓冲区;使用原程序接口获取数据;将获取的所述数据复制到所述缓冲区;从所述缓冲区中取用数据。进一步的,上述方法还可具有以下特点,所述方法还包括重复执行下述操作直到结束使用所述原程序接口获取后续数据;将当前获取的数据复制到所述缓冲区;从所述缓冲区中取用数据。进一步的,上述方法还可具有以下特点,在所述重复过程中,从所述缓冲区中取用数据时,并行执行下一轮操作中的使用所述原程序接口获取后续数据的步骤。进一步的,上述方法还可具有以下特点,所述方法还包括在已复制到所述缓冲区中的数据不再使用时,才将使用所述原程序接口获取的后续数据复制到所述缓冲区。进一步的,上述方法还可具有以下特点,所述原程序接口为数据读取函数或者数据输出函数。本专利技术还提供一种有限资源下数据缓冲装置,其特征在于,包括建立缓冲区模块,用于只建立一个缓冲区;读取数据模块,用于使用原程序接口获取数据;存入缓冲区模块,用于将所述读取数据模块读取的数据复制到所述缓冲区;读取缓冲区模块,用于从所述缓冲区中取用数据。进一步的,上述装置还可具有以下特点,所述读取数据模块还用于重复执行下述操作直到结束使用所述原程序接口获取后续数据;所述存入缓冲区模块还用于在所述读取数据模块每次获取数据后,将所获取的数据复制到所述缓冲区;所述读取缓冲区模块还用于重复从所述缓冲区中取用数据直到结束。进一步的,上述装置还可具有以下特点,所述读取数据模块还用于在所述读取缓冲区模块从所述缓冲区中取用数据时,并行执行使用所述原程序接口获取后续数据。进一步的,上述装置还可具有以下特点,所述存入缓冲区模块是用于在已复制到所述缓冲区中的数据不再使用时,才将读取数据模块获取的后续数据复制到所述缓冲区。进一步的,上述装置还可具有以下特点,所述原程序接口为数据读取函数或者数据输出函数。 与现有技术相比,本专利技术技术方案采取一个缓冲区,避免了有限资源的条件下,多缓冲区空间不足的问题,提升了程序性能。附图说明图I是本专利技术实施例有限资源下数据缓冲方法流程图;图2是本专利技术实施例有限资源下数据缓冲装置框图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本专利技术实施例公开了一种在有限资源条件下的单缓冲区实现的方法,以提高程序性能,其中该方法包括创建单缓冲区;获取数据;将数据复制至缓冲区;从缓冲区中取用数据。本专利技术实施例提供一种有限资源下数据缓冲方法,包括只建立一个缓冲区;使用原程序接口获取数据;将获取的所述数据复制到所述缓冲区;从所述缓冲区中取用数据。其中,缓冲区大小由需要存放的数据决定。其中,所述方法还包括重复执行下述操作直到结束使用所述原程序接口获取后续数据;将当前获取的数据复制到所述缓冲区;从所述缓冲区中取用数据。其中,在所述重复过程中,从所述缓冲区中取用数据时,并行执行下一轮操作中的使用所述原程序接口获取后续数据的步骤。其中,所述方法还包括在已复制到所述缓冲区中的数据不再使用时,才将使用所述原程序接口获取的后续数据复制到所述缓冲区。其中,所述原程序接口为数据读取函数或者数据输出函数。本专利技术实施例还提供一种有限资源下数据缓冲装置,包括建立缓冲区模块,用于建立一个缓冲区;读取数据模块,用于使用原程序接口获取数据;存入缓冲区模块,用于将所述读取数据模块读取的数据复制到所述缓冲区;读取缓冲区模块,用于从所述缓冲区中取用数据。其中,所述读取数据模块还用于重复执行下述操作直到结束使用所述原程序接口获取后续数据;所述存入缓冲区模块还用于在所述读取数据模块每次获取数据后,将所获取的数据复制到所述缓冲区;所述读取缓冲区模块还用于重复从所述缓冲区中取用数据直到结束。 其中,所述读取数据模块还用于在所述读取缓冲区模块从所述缓冲区中取用数据时,并行执行使用所述原程序接口获取后续数据。其中,所述存入缓冲区模块是用于在已复制到所述缓冲区中的数据不再使用时,才将读取数据模块获取的后续数据复制到所述缓冲区。其中,所述原程序接口为数据读取函数或者数据输出函数。本专利技术可适用于内存有限,无法创建两个或两个以上缓冲区的情况;当然,在内存资源足够的时候,也可使用本专利技术。下面通过具体实施例进一步说明本专利技术。实施例一、单缓冲区系统的实施方法本实施例包括如下步骤步骤S110,创建缓冲区,本实施例中缓冲区大小为1024字节;步骤S120,使用原始程序的数据读取函数read,读取数据,该数据最大为1024字节;读取到的数据隐式存入read函数开辟的内存空间中;其中,隐式指程序员无法控制该空间;步骤S130,将上述read函数读取的数据复制至缓冲区中;步骤S140,下游过程从缓冲区中获取数据;步骤S150,重复步骤S120,并与步骤S140同时执行;步骤S160,当缓冲区中的数据不再使用,且步骤S150执行完成时,重复步骤S130,步骤S140。重复执行步骤S150,S160,直到程序执行完毕。需要说明的是,本实施例选择对数据读取函数建立缓冲区,但实际实施过程中,既可以对数据读取函数建立缓冲区,也可以对数据输出函数建立缓冲区,甚至可以对数据读取函数和数据输出函数分别建立缓冲区。应用实例本应用实例对数据处理的单位为1024字节,且对输入建立缓冲区。如图2所示,建立缓冲区模块210建立一个1024字节大小的缓冲区。读取数据模块220使用原始程序的读取数据接口读取1024字节数据并存入程序员不可控的临时空间。存入缓冲区模块230将读取数据模块220读取的在临时空间中的数据复制到缓冲区中。读取缓冲区模块240在需要时将数据从缓冲区中读取并提供给下游模块使用。在存入缓冲区模块230第一次复制数据完成后,读取缓冲区模块240与读取数据模块220可以并行执行,且读取缓冲区模块240-读取数据模块220的并行组,与存入缓冲区模块230依序循环执行,直到程序结束。上述步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,在某些情况下,可以以不同于上述的顺序执行所示出或描述的步骤。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。本专利技术不限制于任何特定形式的硬件和软件的结合。本文档来自技高网...

【技术保护点】
一种有限资源下数据缓冲方法,其特征在于,包括:只建立一个缓冲区;使用原程序接口获取数据;将获取的所述数据复制到所述缓冲区;从所述缓冲区中取用数据。

【技术特征摘要】
1.一种有限资源下数据缓冲方法,其特征在于,包括 只建立一个缓冲区; 使用原程序接口获取数据; 将获取的所述数据复制到所述缓冲区; 从所述缓冲区中取用数据。2.如权利要求I所述的方法,其特征在于,所述方法还包括重复执行下述操作直到结束 使用所述原程序接口获取后续数据;将当前获取的数据复制到所述缓冲区;从所述缓冲区中取用数据。3.如权利要求2所述的方法,其特征在于,在所述重复过程中,从所述缓冲区中取用数据时,并行执行下一轮操作中的使用所述原程序接口获取后续数据的步骤。4.如权利要求2所述的方法,其特征在于,所述方法还包括 在已复制到所述缓冲区中的数据不再使用时,才将使用所述原程序接口获取的后续数据复制到所述缓冲区。5.如权利要求I至4任一所述的方法,其特征在于,所述原程序接口为数据读取函数或者数据输出函数。6.一种有限资源下数据缓冲装置,其特征在于,包括 建立缓冲区模块,用于只建立一个缓冲区; 读取数据模块...

【专利技术属性】
技术研发人员:沈铂张清吴庆
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:

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

1