数据处理方法及装置制造方法

文档序号:6492963阅读:117来源:国知局
数据处理方法及装置制造方法
【专利摘要】本发明公开了一种数据处理方法及装置,属于计算机领域。所述方法包括:获取一组待处理数据,将所述待处理数据缓存为一个元素链表,所述元素链表包含一至多个数据元素,所述数据元素中包含有各自存储的数据;对所述待处理数据进行添加处理时,在所述元素链表中添加数据元素。本发明通过将待处理数据缓存为元素链表,并在对待处理数据进行添加处理时,在元素链表中添加数据元素,达到了减少内存资源浪费,提高处理效率的目的。
【专利说明】数据处理方法及装置
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种数据处理方法及装置。
【背景技术】
[0002]JavaScript (简称JS)是一种常用的计算机语言,常用于Web浏览器中。基于JS的浏览器可以对浏览器使用过程中产生的数据进行添加删除或随机访问处理。
[0003]现有的浏览器数据处理方法中,将待处理数据缓存为一个动态数组,浏览器可以直接访问该动态数组中的数据。另外,当待处理数据超过该动态数组当前容量时,则浏览器可以在原有容量的基础上对该动态数组进行扩容。具体的,若初始容量为r0,则第一次扩容后的容量A为1.5* (A+l),第二次扩容后的容量为r2为1.5* (rjl),以此类推。每次扩容时,浏览器可以新建一个动态数组,并将原动态数组中的数据复制到新建的动态数组。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]首先,现有的数据处理方法中,浏览器按照一定比例对动态数组进行扩容,而不是按照待处理数据的实际数据量进行扩容,扩容后的动态数组往往会有空闲容量,浪费内存资源。其次,每次对动态数组进行扩容时都需要新建动态数组并复制原动态数组中的数据,处理效率低。

【发明内容】

[0006]为了解决现有技术中内存资源浪费且处理效率低的问题,本发明实施例提供了一种数据处理方法及装置。所述技术方案如下:
[0007]—方面,提供了一种数据处理方法,所述方法包括:
[0008]获取一组待处理数据,将所述待处理数据缓存为一个元素链表,所述元素链表包含一至多个数据元素,所述数据元素中包含有各自存储的数据;
[0009]对所述待处理数据进行添加处理时,在所述元素链表中添加数据元素。
[0010]所述在所述元素链表中添加数据元素,具体包括:
[0011]在所述元素链表中新建一至多个数据元素,并将待添加数据写入所述新建的一至多个数据元素中。
[0012]所述方法还包括:
[0013]对所述待处理数据进行删除处理时,将待删除数据所在的数据元素删除。
[0014]所述方法还包括:
[0015]对所述待处理数据进行随机访问时,根据所述元素链表生成一个连续的数组,并对所述数组进行随机访问。
[0016]所述各数据元素中还包含有用于标示前后数据元素的缓存地址的指针,所述根据所述元素链表生成一个连续的数组,具体包括:
[0017]获取所述元素链表中各数据元素存储的数据总量;
[0018]新建一个容量与所述数据总量相等的空数组;[0019]按照所述各数据元素中用于标示前后数据元素的缓存地址的指针,将所述元素链表中各数据元素存储的数据逐一复制到所述新建的空数组中。
[0020]另一方面,提供了一种数据处理装置,所述装置包括:
[0021]数据获取模块,用于获取一组待处理数据;
[0022]数据缓存模块,用于将所述数据获取模块获取的待处理数据缓存为元素链表,所述元素链表包含一至多个数据元素,所述数据元素中包含有各自存储的数据;
[0023]添加模块,用于对所述待处理数据进行添加处理时,在所述元素链表中添加数据元素。
[0024]所述添加模块,具体用于,在所述元素链表中新建一至多个数据元素,并将待添加数据写入所述新建的一至多个数据元素中。
[0025]所述装置还包括:
[0026]删除模块,用于对所述待处理数据进行删除处理时,将待删除数据所在的数据元素删除。
[0027]所述装置还包括:
[0028]数组生成模块,用于对所述待处理数据进行随机访问时,根据所述元素链表生成一个连续的数组;
[0029]随机访问模块,用于对所述数组生成模块生成的数组进行随机访问。
[0030]所述各数据元素中还包含有用于标示前后数据元素的缓存地址的指针,所述数组生成模块,具体包括:
[0031]获取单元,用于获取所述元素链表中各数据元素存储的数据总量;
[0032]新建单元,用于新建一个容量与所述数据总量相等的空数组;
[0033]数据复制单元,用于按照所述各数据元素中用于标示前后数据元素的缓存地址的指针,将所述元素链表中各数据元素存储的数据逐一复制到所述新建的空数组中。
[0034]本发明实施例提供的技术方案带来的有益效果是:
[0035]通过将待处理数据缓存为元素链表,并在对待处理数据进行添加处理时,在元素链表中添加数据元素,达到了减少内存资源浪费,提高处理效率的目的。
【专利附图】

【附图说明】
[0036]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1是本发明实施例一提供的数据处理方法的方法流程图;
[0038]图2是本发明实施例二提供的数据处理方法的方法流程图;
[0039]图3是本发明实施例二提供的元素链表的结构示意图;
[0040]图4是本发明实施例二提供的数组的结构示意图;
[0041]图5是本发明实施例三提供的数据处理装置的一种装置结构图;
[0042]图6是本发明实施例三提供的数据处理装置的另一种装置结构图。【具体实施方式】
[0043]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0044]实施例一
[0045]请参见图1,其示出了本发明实施例一提供的数据处理方法的方法流程图,该方法可以应用于在基于JS的浏览器中对数据进行添加删除或访问处理。该数据处理方法可以包括:
[0046]步骤101,获取一组待处理数据,将该待处理数据缓存为一个元素链表,该元素链表包含一至多个数据元素,每个数据元素中包含有各自存储的数据;
[0047]步骤102,对该待处理数据进行添加处理时,在该元素链表中添加数据元素。
[0048]综上所述,本发明实施例提供的数据处理方法,通过将待处理数据缓存为元素链表,并在对待处理数据进行添加处理时,在元素链表中添加数据元素,达到了减少内存资源浪费,提高处理效率的目的。
[0049]实施例二
[0050]为了对实施例一提供的数据处理方法做进一步描述,请参见图2,其示出了本发明实施例二提供的数据处理方法的方法流程图,可以应用于在基于JS的浏览器中对数据进行添加删除或访问处理。该数据处理方法可以包括:
[0051]步骤201,浏览器获取一组待处理数据;
[0052]其中,浏览器可以是一个基于JS的浏览器,获取的待处理数据可以是一个拥有固定数据结构的数据,比如一组Array数据。
[0053]步骤202,浏览器将该待处理数据缓存为一个元素链表,该元素链表包含一至多个数据元素构成,每个数据元素中包含有各自存储的数据;
[0054]浏览器将Array结构的数据缓存为一个元素链表,其中,一个元素链表可以包括一个链表头以及一至多个数据元素,各数据元素的存储地址可以是不连续的,每个数据元素中存储有该数据元素对应的数据,以及用于标示前后数据元素的缓存地址的指针。具体的,请参见图3,其示出了本发明实施例提供的元素链表的结构图,其中,head为元素链表的链表头,链表头中包含有第一个数据元素的存储地址,第一个数据元素中包含后一个数据元素的缓存地址和该数据元素中存储的数据data,最后一个数据元素中包含前一个数据元素的缓存地址和该数据元素中存储的数据data,其余的数据元素中包含有前一个数据元素的缓存地址、后一个数据元素的缓存地址以及该数据元素中存储的数据data。
[0055]步骤203,对该待处理数据进行添加或删除处理时,浏览器在该元素链表中添加或删除数据元素;
[0056]当需要对待处理数据进行添加处理时,浏览器在元素链表中新建一至多个数据元素,并将待添加数据写入新建的一至多个数据元素中。具体的,浏览器可以为待添加的数据分配一组或多组连续的内存地址作为一至多个空的数据元素,并将待添加的数据存储到该一至多个空的数据元素中,同时添加的还有用于标示前后数据元素的缓存地址的指针。浏览器将新生成的一至多个数据元素连接在原来的元素链表中最后一个数据元素之后,并将新生成的第一个数据元素的缓存地址添加到原来的元素链表中的最后一个数据元素中。
[0057]当对待处理数据进行删除处理时,将待删除数据所在的数据元素删除。具体的,浏览器删除数据时,可以按照数据元素进行删除,一次至少删除一个数据元素。同时,浏览器在删除数据元素之后,还需要对被删除的数据元素前一数据元素和后一数据元素中的指针进行更新。
[0058]步骤204,对该待处理数据进行随机访问时,浏览器根据该元素链表生成一个连续的数组;
[0059]浏览器需要对待处理数据进行随机访问时,首先获取元素链表中各数据元素存储的数据总量;新建一个容量与数据总量相等的空数组;按照各数据元素中用于标示前后数据元素的缓存地址的指针,将元素链表中各数据元素存储的数据逐一复制到新建的空数组中。
[0060]具体的,浏览器可以从元素链表的链表头中获取该元素链表中存储的数据总量,也可以根据各数据元素中的数据量获取数据总量。浏览器获取该元素链表中存储的数据总量之后,新分配一组连续的内存地址,并按照各数据元素中用于标示前后数据元素的缓存地址的指针,逐一将各数据元素中的数据复制到新分配的内存地址中,以生成便于浏览器直接进行随机访问的数组。具体的请参见图4所示的数组结构示意图。
[0061]步骤205,浏览器对该数组进行随机访问。
[0062]需要说明的是,若浏览器在第一次对生成的数组进行随机访问后,又对元素链表中的数据元素进行添加删除操作,并在此后第二次对数组进行随机访问时,还需要按照进行添加删除操作之后元素链表,重新生成用户随机访问的数组。
[0063]由于浏览器对数据进行添加删除处理和访问处理一般不会同时进行,且绝大多数时候是先进行添加删除处理,再进行访问处理。因此,本发明实施例一提供的方法,首先以便于添加或删除处理的元素链表形式缓存待处理数据,以便浏览器对待处理数据进行添加处理,当需要对待处理数据进行访问时,再根据缓存的元素链表生成便于直接访问的数组,以便浏览器对待处理数据进行随机访问处理。
[0064]综上所述,本发明实施例二提供的数据处理方法,通过将待处理数据缓存为元素链表,以便对待处理数据进行添加删除处理,并在对待处理数据进行访问时,再根据元素链表生成便于直接访问的数组,达到了减少内存资源浪费,提高处理效率的目的。
[0065]实施例三
[0066]为了对上述实施例提供的数据处理方法进行更详细的描述,请参见图5,其示出了本发明实施例三提供的数据处理装置的一种装置结构图,该数据处理装置可以应用在基于JS语言的网络浏览器中。该数据处理装置可以包括:
[0067]数据获取模块501,用于获取一组待处理数据;
[0068]数据缓存模块502,用于将数据获取模块获取的待处理数据缓存为元素链表,该元素链表包含一至多个数据元素,每个数据元素中包含有各自存储的数据;
[0069]添加模块503,用于在对待处理数据进行添加处理时,在该元素链表中添加数据元素。
[0070]其中,添加模块503,具体用于当对待处理数据进行添加处理时,在元素链表中新建一至多个数据元素,并将待添加数据写入新建的一至多个数据元素中;
[0071]当需要对待处理数据进行添加处理时,添加模块503在元素链表中新建一至多个数据元素,并将待添加数据写入新建的一至多个数据元素中。具体的,添加模块503可以为待添加的数据分配一组或多组连续的内存地址作为一至多个空的数据元素,并将待添加的数据存储到该一至多个空的数据元素中,同时添加的还有用于标示前后数据元素的缓存地址的指针。添加模块503将新生成的一至多个数据元素连接在原来的元素链表中最后一个数据元素之后,并将新生成的第一个数据元素的缓存地址添加到原来的元素链表中的最后一个数据元素中。
[0072]请参见图6,其示出了本发明实施例三提供的数据处理装置的另一种装置结构图,其中,该数据处理装置还包括:
[0073]删除模块504,用于对该待处理数据进行删除处理时,将待删除数据所在的数据元素删除。
[0074]当对待处理数据进行删除处理时,将待删除数据所在的数据元素删除。具体的,删除模块504删除数据时,可以按照数据元素进行删除,一次至少删除一个数据元素。同时,删除模块504在删除数据元素之后,还需要对被删除的数据元素前一数据元素和后一数据元素中的指针进行更新。
[0075]另外,该装置还包括:
[0076]数组生成模块505,用于在对待处理数据进行随机访问时,将该元素链表转化为一个连续的数组;
[0077]随机访问模块506,用于对数组生成模块504生成的数组进行随机访问。
[0078]另外,各数据元素中还包含有用于标示前后数据元素的缓存地址的指针,其中,数组生成模块505,具体包括:
[0079]获取单元505a,用于获取元素链表中各数据元素存储的数据总量;
[0080]新建单元505b,用于新建一个容量与数据总量相等的空数组;
[0081]数据复制单元505c,用于按照各数据元素中用于标示前后数据元素的缓存地址的指针,将元素链表中各数据元素存储的数据逐一复制到新建的空数组中。
[0082]综上所述,本发明实施例三提供的数据处理装置,通过将待处理数据缓存为元素链表,以便对待处理数据进行添加删除处理,并在对待处理数据进行访问时,再根据元素链表生成便于直接访问的数组,达到了减少内存资源浪费,提高处理效率的目的。
[0083]需要说明的是:上述实施例提供的数据处理装置在处理数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0084]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0085]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0086]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据处理方法,其特征在于,所述方法包括: 获取一组待处理数据,将所述待处理数据缓存为一个元素链表,所述元素链表包含一至多个数据元素,所述数据元素中包含有各自存储的数据; 对所述待处理数据进行添加处理时,在所述元素链表中添加数据元素。
2.根据权利要求1所述的数据处理方法,其特征在于,所述在所述元素链表中添加数据元素,具体包括: 在所述元素链表中新建一至多个数据元素,并将待添加数据写入所述新建的一至多个数据元素中。
3.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括: 对所述待处理数据进行删除处理时,将待删除数据所在的数据元素删除。
4.根据权利要求1至3任一所述的数据处理方法,其特征在于,所述方法还包括: 对所述待处理数据进行随机访问时,根据所述元素链表生成一个连续的数组,并对所述数组进行随机访问。
5.根据权利要求4所述的数据处理方法,其特征在于,所述各数据元素中还包含有用于标示前后数据元素的缓存地址的指针,所述根据所述元素链表生成一个连续的数组,具体包括: 获取所述元素链表中各数据元素存储的数据总量; 新建一个容量与所述数据总量相等的空数组; 按照所述各数据元素中用于标示`前后数据元素的缓存地址的指针,将所述元素链表中各数据元素存储的数据逐一复制到所述新建的空数组中。
6.一种数据处理装置,其特征在于,所述装置包括: 数据获取模块,用于获取一组待处理数据; 数据缓存模块,用于将所述数据获取模块获取的待处理数据缓存为元素链表,所述元素链表包含一至多个数据元素,所述数据元素中包含有各自存储的数据; 添加模块,用于对所述待处理数据进行添加处理时,在所述元素链表中添加数据元素。
7.根据权利要求6所述的数据处理装置,其特征在于,所述添加模块,具体用于,在所述元素链表中新建一至多个数据元素,并将待添加数据写入所述新建的一至多个数据元素中。
8.根据权利要求6所述的数据处理装置,其特征在于,所述装置还包括: 删除模块,用于对所述待处理数据进行删除处理时,将待删除数据所在的数据元素删除。
9.根据权利要求6至8任一所述的数据处理装置,其特征在于,所述装置还包括: 数组生成模块,用于对所述待处理数据进行随机访问时,根据所述元素链表生成一个连续的数组; 随机访问模块,用于对所述数组生成模块生成的数组进行随机访问。
10.根据权利要求9所述的数据处理装置,其特征在于,所述各数据元素中还包含有用于标示前后数据元素的缓存地址的指针,所述数组生成模块,具体包括: 获取单元,用于获取所述元素链表中各数据元素存储的数据总量; 新建单元,用于新建一个容量与所述数据总量相等的空数组;数据复制单元,用于按照所述各数据元素中用于标示前后数据元素的缓存地址的指针,将所述元素链表中各数 据元素存储的数据逐一复制到所述新建的空数组中。
【文档编号】G06F9/44GK103870259SQ201210543879
【公开日】2014年6月18日 申请日期:2012年12月14日 优先权日:2012年12月14日
【发明者】陈明琴, 孔利, 何飞, 余宁, 舒玉强 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1