一种前端大数据计算处理方法和系统技术方案

技术编号:33782061 阅读:19 留言:0更新日期:2022-06-12 14:36
本发明专利技术公开一种前端大数据计算处理方法和系统,所述方法包括:启动浏览器主线程,根据所述浏览器主线程获取待处理数据,预设压缩算法,根据所述压缩算法对所述待处理数据进行压缩,生成单独的切片;对所述单独的切片预设切片偏移量,并对每一切片设置key值,对每一切片都生成对应的worker,并将切片数据转化为Transferable对象数组;每个Transferable对象数组分配到对应的一个worker,通过所述worker将ransferable对象数组转换文本,并根据所述key值保存在indexedDB中;主线程获取key值数组,并根据所述key值数组从所述indexedDB查询到对应的数据。到对应的数据。到对应的数据。

【技术实现步骤摘要】
一种前端大数据计算处理方法和系统


[0001]本专利技术涉及互联网
,特别涉及一种前端大数据计算处理方法和系统。

技术介绍

[0002]在目前的现有技术中有部分的业务计算是放到前端处理,但前端的特殊性就是单线程执行,所以性能问题必然比服务端要容易出现。虽然js语言是单线程,但浏览器为我们提供多线程的方案,我们可以通过利用浏览器的多线程特性来处理大数据量的计算或者一些流式计算。除大数据量的计算性能以外,还要处理因为线程内存消耗过高导致浏览器页签崩溃问题,此问题主要是通过多线程的内存地址交互来实现,最终由indexedDB存储来处理数据整合问题。然而上述现有技术存在如下技术问题:虽然存在多线程以及indexedDB的存储,但能力依旧有上限,算力主要受限于浏览器的上限,存储主要受限于本地磁盘容量,目前的本地方案无法解决此过高的内存占用。

技术实现思路

[0003]本专利技术其中一个专利技术目的在于提供一种前端大数据计算处理方法和系统,所述方法和系统通过浏览器提供的Web Worker实现多进程的并行计算,通过work之间传递的transferList交接数据所有权来优化普通work方案中对象被拷贝多份的问题。
[0004]本专利技术另一个专利技术目的在于提供一种前端大数据计算处理方法和系统,所述方法和系统在利用多个work执行并行计算的同时,利用indexedDB的存储能力实现数据的持久化,并且在优化完成后解除work的内存,从而可以更好的优化存储内存。
[0005]本专利技术另一个专利技术目的在于提供一种前端大数据计算处理方法和系统,所述方法和系统利用浏览器的worker特性,可以使得大批量的计算可以同时进行,并且不会造成由于多次拷贝对象造成的内存溢出,且可以利用indexedDB本地存储的特性,尽可能的减少页签内存占用,使得垃圾回收机制更加流畅,主线程获取数据以及需要存储的数据量更小。
[0006]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种前端大数据计算处理方法,所述方法包括:
[0007]启动浏览器主线程,根据所述浏览器主线程获取待处理数据,预设压缩算法,根据所述压缩算法对所述待处理数据进行压缩,生成单独的切片;
[0008]对所述单独的切片预设切片偏移量,并对每一切片设置key值,对每一切片都生成对应的worker,并将切片数据转化为Transferable对象数组;
[0009]每个Transferable对象数组分配到对应的一个worker,通过所述worker将Transferable对象数组转换文本,并根据所述key值保存在indexedDB中;
[0010]主线程获取key值数组,并根据所述key值数组从所述indexedDB查询到对应的数据。
[0011]根据本专利技术其中一个较佳实施例,将所述切片转化为Transferable对象数组后,进一步给每个worker传递对象所有权,当所述对象所有权转交给对应的worker后,该对象
在原上下文状态中为不可用状态。
[0012]根据本专利技术另一个较佳实施例,其中所述传递所有权的对象需要添加ArrayBuffer或MessagePort或ImageBitMap类型的实例对象,其中Transferable对象数组中不能传入null。
[0013]根据本专利技术另一个较佳实施例,将所述Transferable对象数组转化为文本后并存储后,通过主线程监听每个worker的回调事件,根据所述回调事件处理数据。
[0014]根据本专利技术另一个较佳实施例,依次处理每个回调事件,当所有数据处理完毕后将所有处理好的数据存储到所述indexedDB中,收回缓存中的数据,使得主线内存始终占用worker线程计算前的空间,以优化浏览器内存占用和主线程空间。
[0015]根据本专利技术另一个较佳实施例,将切片后的Transferable对象数组在worker内部转化为文本数据后,根据设置的key值和indexedDB特性将所述文本数据保存,其中所述key值用于标识对应切片的文本数据,在所述indexedDB中生成键值对保存。
[0016]根据本专利技术另一个较佳实施例,所述主线程获取key数组,并根据所述key数组和indexedDB提供的键值查询方法查询对应的键值,用于获取所有保存的数据。
[0017]根据本专利技术另一个较佳实施例,所述主线程根据获取的key数组将切片后的保存于indexedDB中的数据部分提取到内存中处理,用于提高数据处理的效率。
[0018]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种前端大数据计算处理系统,所述系统执行上述一种前端大数据计算处理方法。
[0019]本专利技术进一步提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行所述一种前端大数据计算处理方法。
附图说明
[0020]图1显示的是本专利技术一种前端大数据计算处理方法的流程示意图。
具体实施方式
[0021]以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本专利技术的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本专利技术的精神和范围的其他技术方案。
[0022]可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
[0023]请结合图1,本专利技术公开了一种前端大数据处理方法和系统,其中所述方法包括;通过主线程对获取的数据进行切片,将所述切片进行标识后,将切片的数据转化为Transferable对象数组,并进一步将所述Transferable对象数组转化为文本数据,进一步将分片的文本数据存储到indexedDB中,利用indexedDB可以将分片的数据部分查询提取进行处理。并通过所述indexedDB的存储功能可以使得主线程的内存占用可以更少,从而可以优化浏览器内存和主线程。
[0024]具体而言,本专利技术以流式压缩处理距离说明:系统在前后端预先约定设置压缩算
法、解压算法执行数据的压缩和解压操作,其中所述压缩算法包括但不仅限于LZW算法和霍夫曼压缩算法。并且需要预先约定每个单独片段的偏移量信息等,其中所述片段的偏移量信息为将数据的IP报文分片为更小的IP报文,并且每一分片后IP报文都会存在对应的分片后的IP报文。对主线获取的数据根据预先约定的压缩算法进行分片压缩后,需要对每个分片压缩后的数据配置一个key,其中所述key为唯一的身份标识,所述key用于构建键值对。在完成所述分片压缩后,对所述分片压缩数据生成一个worker,并将所述切片后的压缩数据转化为Transferable对象的数组,其中所述Transferable对象的数组由Transferable接口实现,其中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种前端大数据计算处理方法,其特征在于,所述方法包括:启动浏览器主线程,根据所述浏览器主线程获取待处理数据,预设压缩算法,根据所述压缩算法对所述待处理数据进行压缩,生成单独的切片;对所述单独的切片预设切片偏移量,并对每一切片设置key值,对每一切片都生成对应的worker,并将切片数据转化为Transferable对象数组;每个Transferable对象数组分配到对应的一个worker,通过所述worker将Transferable对象数组转换文本,并根据所述key值保存在indexedDB中;主线程获取key值数组,并根据所述key值数组从所述indexedDB查询到对应的数据。2.根据权利要求1所述的一种前端大数据计算处理方法,其特征在于,将所述切片转化为Transferable对象数组后,进一步给每个worker传递对象所有权,当所述对象所有权转交给对应的worker后,该对象在原上下文状态中为不可用状态。3.根据权利要求2所述的一种前端大数据计算处理方法,其特征在于,其中所述传递所有权的对象需要添加ArrayBuffer或MessagePort或ImageBitMap类型的实例对象,其中Transferable对象数组中不能传入null。4.根据权利要求1所述的一种前端大数据计算处理方法,其特征在于,将所述Transferable对象数组转化为文本后并存储后,通过主线程监听每个worker的回调事件,根据所述回调事件处理数据。5...

【专利技术属性】
技术研发人员:张万里
申请(专利权)人:杭州笨马网络技术有限公司
类型:发明
国别省市:

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

1