System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,尤其涉及一种数据传输方法、装置、计算机设备、存储介质及程序产品。
技术介绍
1、远程过程调用(rpc,remote procedure call)方式是一种可以使程序像本地调用一样使用远程计算机设备上的服务,而无须关心底层网络技术细节的传输方式。远程过程调用方式因其具有高性能特点被广泛用于业务系统中。然而,随着业务系统的扩张与复杂多变,远程过程调用方式的传输性能损耗对业务系统的整体性能产生不可忽视的影响。
2、通常,为了减少传输性能损耗,多数情况下会通过连接池化,连接复用,扩大传输窗口等手段对远程过程调用方式做传输优化,从而提高高并发下数据传输性能。
3、然而,专利技术人发现,上述优化方式都以最大化压缩网络传输方式提高性能,相对提高了cpu及内存的使用率,当cpu过高或内存使用过高时,多数优化效果不佳。
4、需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
技术实现思路
1、有鉴于此,现提供一种数据传输方法、装置、计算机设备及计算机可读存储介质,以解决上述问题。
2、本申请提供了一种数据传输方法,所述方法包括:
3、获取待传输的数据块并存储于内存块中的第一存储位置;
4、基于所述数据块生成数据块头信息并存储于所述内存块中的第二存储位置,所述第一存储位置与所述第二存储位置为内存块中的相邻存储位置,所述数据块头信息用于在对待解码数据块进行解码时,确定所述待解码数据块中
5、响应于远程过程调用请求,将所述内存块中的数据发送至第一目标终端。
6、可选地,所述方法还包括:
7、在将所述内存块中的数据发送至第一目标终端时,不申请内存来存储所述内存块中的数据。
8、可选地,所述数据块头信息为未编码的数据,所述基于所述数据块生成数据块头信息并存储于所述内存块中的第二存储位置包括:
9、基于所述数据块生成数据块头信息;
10、对所述数据块头信息进行编码,并将编码后得到的数据存储于所述内存块中的第二存储位置。
11、可选地,所述获取待传输的数据块并存储于内存块中的第一存储位置包括:
12、在内存中申请具有目标大小的内存块,以存储所述数据块及所述数据块头信息;
13、将所述数据块存储于所述具有目标大小的内存块中的第一存储位置。
14、可选地,所述响应于远程过程调用请求,将所述内存块中的数据发送至第一目标终端包括:
15、响应于远程过程调用请求,从所述内存块中的第二存储位置读取所述数据块头信息,并在从所述第二存储位置读取完所述数据块头信息后,从所述内存块中的第一存储位置读取所述数据块,以组成待发送数据块;
16、将所述待发送数据块发送至所述第一目标终端。
17、可选地,所述方法还包括:
18、将待传输文件切分为多个待传输的数据块;
19、所述响应于远程过程调用请求,将所述内存块中的数据发送至第一目标终端包括:
20、响应于远程过程调用请求,并行将多个内存块中的数据发送至第一目标终端。
21、可选地,所述方法还包括:
22、接收第二目标终端通过远程过程调用方式传输的至少一个响应数据时,所述响应数据包括数据块头信息及数据块;
23、针对每一个所述响应数据,根据每一个所述响应数据的数据块头信息对每一个所述响应数据进行解码,以从每一个响应数据中提取出数据块;
24、根据每一个所述响应数据的数据块头信息中包含的数据块存储相对位置信息将提取到的所有数据块合成目标文件。
25、本申请还提供了一种数据传输装置,所述数据传输装置包括:
26、获取模块,用于获取待传输的数据块并存储于内存块中的第一存储位置;
27、生成模块,用于基于所述数据块生成数据块头信息并存储于所述内存块中的第二存储位置,所述第一存储位置与所述第二存储位置为内存块中的相邻存储位置,所述数据块头信息用于在对待解码数据块进行解码时,确定所述待解码数据块中包含的所述待传输的数据块的位置;
28、响应模块,用于响应于远程过程调用请求,将所述内存块中的数据发送至第一目标终端。
29、本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
30、本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
31、本申请还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
32、本申请实施例数据传输方法,通过获取待传输的数据块并存储于内存块中的第一存储位置;基于所述数据块生成数据块头信息并存储于所述内存块中的第二存储位置,所述第一存储位置与所述第二存储位置为内存块中的相邻存储位置,所述数据块头信息用于在对待解码数据块进行解码时,确定所述待解码数据块中包含的所述数据块的位置;响应于远程过程调用请求,将所述内存块中的数据发送。上述数据传输方式通过在通过远程过程调用方式将数据传输至第一目标终端时,不再需要申请内存来存储待发送的数据,而是直接从数据块的原本存储位置中对数据块进行直接读取,从而避免了对内存的申请操作以及对数据块的拷贝操作,进而降低了cpu与内存的使用率,提高了数据的传输性能。待传输的数据块数目越多,传输性能提高的幅度也越大。在实际测试中,传输性能的提升可以达到20%以上。
本文档来自技高网...【技术保护点】
1.一种数据传输方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据传输方法,其特征在于,在将所述内存块中的数据发送至第一目标终端时,不申请内存来存储所述内存块中的数据。
3.根据权利要求1或2所述的数据传输方法,其特征在于,所述数据块头信息为未编码的数据,所述基于所述数据块生成数据块头信息并存储于所述内存块中的第二存储位置包括:
4.根据权利要求1或2所述的数据传输方法,其特征在于,所述获取待传输的数据块并存储于内存块中的第一存储位置包括:
5.根据权利要求1所述的数据传输方法,其特征在于,所述响应于远程过程调用请求,将所述内存块中的数据发送至第一目标终端包括:
6.根据权利要求1所述的数据传输方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的数据传输方法,其特征在于,所述方法还包括:
8.一种数据传输装置,其特征在于,所述数据传输装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
...【技术特征摘要】
1.一种数据传输方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据传输方法,其特征在于,在将所述内存块中的数据发送至第一目标终端时,不申请内存来存储所述内存块中的数据。
3.根据权利要求1或2所述的数据传输方法,其特征在于,所述数据块头信息为未编码的数据,所述基于所述数据块生成数据块头信息并存储于所述内存块中的第二存储位置包括:
4.根据权利要求1或2所述的数据传输方法,其特征在于,所述获取待传输的数据块并存储于内存块中的第一存储位置包括:
5.根据权利要求1所述的数据传输方法,其特征在于,所述响应于远程过程调用请求,将所述内存块中的数据发送至第一目标终端包括:
6.根据权利要求1所述的数据传输方...
【专利技术属性】
技术研发人员:朱洪亮,
申请(专利权)人:上海哔哩哔哩科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。