System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种数据传输方法及相关装置。
技术介绍
1、随着通信技术的发展,人们日常生活与通信的联系愈发紧密,需要电子设备处理的信息也越来越多。在处理繁多的信息时,不仅需要不同电子设备之间进行通信,还需要电子设备中的不同进程之间进行通信。
2、当电子设备中的不同进程进行通信时,发送数据的进程要将数据拷贝到parcel中,再通过进程间通信(interprocess communication,ipc)将parcel传输给接收进程。接收进程再将数据从parcel中拷贝到接收进程的进程空间。
3、采用上述方法虽然可以实现进程间通信,但是在传输过程繁琐,数据的传输效率不高。
技术实现思路
1、本申请提供了一种数据传输方法及相关装置,实现了跨进程数据传输,提高了数据传输效率。
2、第一方面,本申请提供了,一种数据传输方法,应用于第一电子设备,第一电子设备包括第一进程、第二进程和共享内存,共享内存中包括第一存储区域,第一存储区域包括多个连续的节点;其特征在于,方法包括:第一进程获取第一存储区域的第一节点信息,第一节点信息包括第一存储区域中每个节点的起始地址和内存大小;第一进程基于第一节点信息对第一任务数据执行预处理操作,确定多个数据段;第一进程将多个数据段并行写入第一存储区域的多个节点,第一存储区域的每个节点写入的数据段不同;第一进程将第一任务数据的第一索引标识通过进程间通信ipc传递给第二进程,第一索引标识用于表征第一存储区域在共享内存中的位置
3、这样,可以提高跨进程数据的传输效率。
4、在一种可能的实现方式中,当多个数据段的数目多于多个节点的数目时,方法还包括:第一进程确定填缝数据,填缝数据包括多个数据段中未写入第一存储区域的一个或多个数据段;第一进程基于多个节点的数据填充情况确定多个节点中空白缝隙的存储信息,空白缝隙的存储信息包括第一存储区域中的每个空白缝隙的地址和内存大小,空白缝隙为每个节点中未填充数据的区域;第一进程基于空白缝隙的存储信息将填缝数据写入一个或多个空白缝隙。
5、这样,可以提高第一存储区域中内存的使用效率。
6、在一种可能的实现方式中,第一进程基于空白缝隙的存储信息将填缝数据写入一个或多个空白缝隙,具体包括:第一进程确定填缝数据中每个数据段的数据类型;第一进程基于空白缝隙的存储信息确定每个空白缝隙的数据类型标签,数据类型标签用于指示空白缝隙与数据类型的对应关系;第一进程基于填缝数据的数据类型、空白缝隙的数据类型标签和空白缝隙的存储信息将填缝数据填充到空白缝隙。
7、这样,可以提高填缝数据的填充效率。
8、在一种可能的实现方式中,多个节点的内存大小相同。
9、这样,可以方便对第一存储区域的节点进行管理。
10、在一种可能的实现方式中,第一任务数据包括多个数据单元,第一任务数据的多个数据单元包括第一数据单元、第二数据单元和第三数据单元;第一存储区域包括多个内存页,多个内存页包括第一内存页和第二内存页;第一进程将多个数据段并行写入第一存储区域的多个节点,具体包括:在第一时间,第一进程将第一数据单元的多个数据段并行写入第一内存页的多个节点;在第三时间,第一进程将第二数据单元的多个数据段并行写入第二内存页的多个节点;在第五时间,第一进程将第三数据单元的多个数据段并行写入第一内存页的多个节点;其中,第五时间晚于第三时间,第三时间晚于第一时间。
11、这样可以提高第一存储区域中内存的使用效率,还可以提高数据传输效率。
12、在一种可能的实现方式中,第二进程获取第一存储区域中的第一任务数据,具体包括:在第二时间,第二进程获取第一内存页中的第一数据单元;在第四时间,第二进程获取第二内存页中的第二数据单元;在第六时间,第二进程获取第一内存页中的第三数据单元;其中,第六时间晚于第五时间,第四时间晚于第三时间,第二时间晚于第一时间,第五时间晚于第二时间。
13、在一种可能的实现方式中,第一进程基于第一节点信息对第一任务数据执行预处理操作,确定多个数据段,具体包括:在第一时间之前,第一进程基于第一节点信息对第一数据单元执行预处理操作,确定第一数据单元的多个数据段;在第三时间之前,第一进程基于第一节点信息对第二数据单元执行预处理操作,确定第一数据单元的多个数据段;在第五时间之前,第一进程基于第一节点信息对第三数据单元执行预处理操作,确定第一数据单元的多个数据段。
14、在一种可能的实现方式中,第二进程获取第一内存页中的第一数据单元,具体包括:第二进程并行读取第一内存页中多个节点的第一数据单元的多个数据段;第二进程获取第二内存页中的第二数据单元,具体包括:第二进程并行读取第二内存页中多个节点的第二数据单元的多个数据段;第二进程获取第一内存页中的第三数据单元,具体包括:第二进程并行读取第一内存页中多个节点的第三数据单元的多个数据段。
15、在一种可能的实现方式中,在第二进程基于第一索引标识获取第一存储区域中的第一任务数据之后,方法还包括:第一进程将第二任务数据写入共享内存中的第一存储区域;第一进程将第一索引标识通过进程间通信ipc传递给第二进程;第二进程基于第一索引标识获取第一存储区域中的第二任务数据。
16、在一种可能的实现方式中,电子设备还包括第三进程,方法还包括:第三进程将第三任务数据写入共享内存中的第二存储区域;第三进程向第一电子设备的操作系统发送第一请求,第一请求包括第二索引标识和第二电子设备的设备标识,第二索引标识用于表征共享内存中第二存储区域的位置;响应于第一请求,操作系统向第二电子设备发送第二存储区域中的第三任务数据。
17、在一种可能的实现方式中,第二存储区域包括多个连续的节点,第三进程将第三任务数据写入共享内存中的第二存储区域,具体包括:第三进程获取第二存储区域的第二节点信息,第二节点信息包括第二存储区域中每个节点的起始地址和内存大小;第三进程基于第二节点信息对第三任务数据执行预处理操作;第三进程将预处理后的第三任务数据并行写入第二存储区域的多个节点,第二存储区域的每个节点写入的数据不同。
18、第二方面,本申请提供了一种电子设备,为第一电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得第一电子设备执行上述任一方面任一项可能的实现方式中的数据传输方法。
19、第三方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在第一电子设备上运行时,使得第一电子设备执行上述任一方面任一项可能的实现方式中的数据传输方法。
20、第四方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在第一电子设备上运行时,使得第一电子设备执行本文档来自技高网...
【技术保护点】
1.一种数据传输方法,应用于第一电子设备,所述第一电子设备包括第一进程、第二进程和共享内存,所述共享内存中包括第一存储区域,所述第一存储区域包括多个连续的节点;其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,当所述多个数据段的数目多于所述多个节点的数目时,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述第一进程基于所述空白缝隙的存储信息将所述填缝数据写入一个或多个所述空白缝隙,具体包括:
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述多个节点的内存大小相同。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一任务数据包括多个数据单元,所述第一任务数据的多个数据单元包括第一数据单元、第二数据单元和第三数据单元;所述第一存储区域包括多个内存页,所述多个内存页包括第一内存页和第二内存页;
6.根据权利要求5所述的方法,其特征在于,所述第二进程获取所述第一存储区域中的所述第一任务数据,具体包括:
7.根据权利要求5或6所述的方法,其特征在于,所述第一进程基
8.根据权利要求6所述的方法,其特征在于,所述第二进程获取所述第一内存页中的所述第一数据单元,具体包括:
9.根据权利要求1-8中任一项所述的方法,其特征在于,在所述第二进程基于所述第一索引标识获取所述第一存储区域中的所述第一任务数据之后,所述方法还包括:
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述电子设备还包括第三进程,所述方法还包括:
11.根据权利要求10所述的方法,其特征在于,所述第二存储区域包括多个连续的节点,所述第三进程将第三任务数据写入所述共享内存中的第二存储区域,具体包括:
12.一种电子设备,为第一电子设备,其特征在于,包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述第一电子设备执行上述权利要求1-11中任一项所述的方法。
13.一种计算机可读存储介质,包括计算机指令,其特征在于,当所述计算机指令在第一电子设备上运行时,使得所述第一电子设备执行上述权利要求1-11中任一项所述的方法。
...【技术特征摘要】
1.一种数据传输方法,应用于第一电子设备,所述第一电子设备包括第一进程、第二进程和共享内存,所述共享内存中包括第一存储区域,所述第一存储区域包括多个连续的节点;其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,当所述多个数据段的数目多于所述多个节点的数目时,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述第一进程基于所述空白缝隙的存储信息将所述填缝数据写入一个或多个所述空白缝隙,具体包括:
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述多个节点的内存大小相同。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一任务数据包括多个数据单元,所述第一任务数据的多个数据单元包括第一数据单元、第二数据单元和第三数据单元;所述第一存储区域包括多个内存页,所述多个内存页包括第一内存页和第二内存页;
6.根据权利要求5所述的方法,其特征在于,所述第二进程获取所述第一存储区域中的所述第一任务数据,具体包括:
7.根据权利要求5或6所述的方法,其特征在于,所述第一进程基于所述第一节点信息对所述第一任务数据执行预处理操作,确定多个数据段,具体包括:<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。