CN114244912A - 数据传输方法、装置、计算机设备及存储介质 - Google Patents
数据传输方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114244912A CN114244912A CN202010934997.3A CN202010934997A CN114244912A CN 114244912 A CN114244912 A CN 114244912A CN 202010934997 A CN202010934997 A CN 202010934997A CN 114244912 A CN114244912 A CN 114244912A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- transmitted
- thread
- transmission mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 347
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000015654 memory Effects 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 19
- 238000012546 transfer Methods 0.000 description 19
- 238000009877 rendering Methods 0.000 description 8
- 230000003936 working memory Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据传输方法、装置、计算机设备及存储介质,该方法包括:获取待传输数据;确定待传输数据的目标数据量,并根据目标数据量确定用于传输待传输数据的目标数据传输模式;基于目标数据传输模式将待传输数据传送至目标线程,并基于目标线程确定待传输数据对应的待渲染数据。采用本申请实施例,可以提高数据传输的效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据传输方法、装置、计算机设备及存储介质。
背景技术
目前,通过传统的数据传输方案对Hippy框架中不同线程的数据进行传输,Hippy框架中可以包含JS(javascript)线程、JS桥接(JSBridge)线程以及用户界面(userinterface,UI)线程。在传统的数据传输方案中,将JS线程中的数据传输到JSBridge线程,进行了一次内存分配和内存拷贝,在JSBridge线程内部进行数据传输时,进行了一次内存分配和内存拷贝,进而将数据从JSBridge线程传输到UI线程,进行了一次内存分配和内存拷贝。由此可见,在将数据从JS线程传输到UI线程的过程中,需要进行三次内存分配和三次内存拷贝,在数据传输量比较大的情况下,效率低。
发明内容
本申请实施例提供一种数据传输方法、装置、计算机设备及存储介质,可以提高数据传输的效率。
本申请实施例一方面提供一种数据传输方法,该方法包括:
获取待传输数据;
确定待传输数据的目标数据量,并根据目标数据量确定用于传输待传输数据的目标数据传输模式;
基于目标数据传输模式将待传输数据传送至目标线程,并基于目标线程确定待传输数据对应的待渲染数据。
其中,上述方法还包括:
基于目标线程对待渲染数据进行渲染并显示至用户界面。
本申请实施例一方面提供一种数据传输装置,该装置包括:
获取模块,用于获取待传输数据;
模式确定模块,用于确定待传输数据的目标数据量,并根据目标数据量确定用于传输待传输数据的目标数据传输模式;
传送确定模块,用于基于目标数据传输模式将待传输数据传送至目标线程,并基于目标线程确定待传输数据对应的待渲染数据。
其中,上述装置还包括:
渲染显示模块,用于基于目标线程对待渲染数据进行渲染并显示至用户界面。
其中,模式确定模块包括:
第一确定单元,用于确定用于传输待传输数据的至少一种数据传输模式,其中一种数据传输模式对应一个传输数据量范围;
第二确定单元,用于从至少一种数据传输模式对应的至少一个传输数据量范围中确定出包含目标数据量的目标传输数据量范围,并将目标传输数据量范围对应的数据传输模式确定为用于传输待传输数据的目标数据传输模式。
其中,至少一种数据传输模式中包括第一数据传输模式、第二数据传输模式以及第三数据传输模式;
第一数据传输模式对应的传输数据量范围为大于零且小于或者等于第一传输数据量阈值,第二数据传输模式对应的传输数据量范围为大于第一传输数据量阈值且小于或者等于第二传输数据量阈值,第三数据传输模式对应的传输数据量范围为大于第二传输数据量阈值,第一传输数据量阈值(如1K或者其它值)小于第二传输数据量阈值(如15K或者其它值)。
其中,传送确定模块包括:
第一传输单元,用于在目标数据传输模式为第一数据传输模式时,基于第一线程将待传输数据传输至第二线程;
第一转换传输单元,用于基于第二线程将待传输数据转换为字符串并将字符串转换为第二数据格式的目标传输数据,并基于第二线程将目标传输数据传输至目标线程;
第一转换单元,用于基于目标线程中的数据传输协议将目标传输数据转换为目标数据格式的待渲染数据。
其中,传送确定模块包括:
第二传输单元,用于在目标数据传输模式为第二数据传输模式时,基于第一线程将待传输数据传输至第二线程;
第二转换传输单元,用于基于第二线程中的二进制传输协议将待传输数据转换为二进制流数据,并基于第二线程将二进制流数据传输至目标线程;
第二转换单元,用于基于目标线程将二进制流数据还原为待传输数据,并基于目标线程中的数据传输协议将待传输数据转换为目标数据格式的待渲染数据。
其中,二进制流数据对应的数据格式包括数据类型、类型表示、数据长度、数据内容以及数据数量中的至少一种;
数据类型包括基本数据类型和组合类型,基本数据类型是由目标语言对应的数据类型所确定的,组合类型包含字符串、数组以及结构体中的至少一种。
其中,传送确定模块包括:
存储单元,用于在目标数据传输模式为第三数据传输模式时,基于第一线程将目标键值对存储至缓存池,目标键值对包含待传输数据以及待传输数据对应的键对象;
第三传输单元,用于基于第一线程将键对象传输至第二线程,并基于第二线程将键对象传输至目标线程;
获取转换单元,用于基于目标线程从缓存池中获取键对象对应的待传输数据,并基于目标线程中的数据传输协议将待传输数据转换为目标数据格式的待渲染数据。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
该处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行本申请实施例中上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的数据传输方法。
在本申请实施例中,计算机设备可以在获取待传输数据之后确定待传输数据的目标数据量,这里的目标数据量后续可以用于确定待传输数据的目标数据传输模式,进而可以根据不同的数据量去选择不同的数据传输方案。进一步的,在确定目标数据传输模式之后,计算机设备可以基于目标数据传输模式将待传输数据传送至目标线程,基于目标线程确定待传输数据对应的待渲染数据,并基于目标线程对待渲染数据进行渲染并显示至用户界面,进而可以基于所选择的目标数据传输模式高效传输待传输数据,从而提高了数据传输效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种数据传输方法的流程示意图;
图3是本申请实施例提供的一种确定目标数据传输模式的场景示意图;
图4a是本申请实施例提供的一种第一数据传输模式的数据传输示意图;
图4b是本申请实施例提供的一种第一数据传输模式的数据传输示意图;
图5a是本申请实施例提供的一种第二数据传输模式的数据传输示意图;
图5b是本申请实施例提供的一种第二数据传输模式的数据传输示意图;
图5c是本申请实施例提供的一种二进制流数据对应的数据格式的结构示意图;
图6是本申请实施例提供的一种第三数据传输模式的数据传输示意图;
图7是本申请实施例提供的一种数据传输装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请提供的网络架构的结构示意图。如图1所示,该网络架构可以包括服务器10和用户终端集群,该用户终端集群可以包括多个用户终端,如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。
其中,服务器10可以为独立的物理服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,CDN)、大数据以及人工智能平台等基础云计算服务的云服务器。用户终端集群中的每个用户终端均可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等智能终端。
可以理解的是,本申请中的计算机设备可以为具有数据传输功能的实体终端,该实体终端可以为如图1所示的用户终端集群中的任一用户终端(如用户终端100a),也可以为服务器10,在此不做限定。
如图1所示,用户终端100a、用户终端100b、用户终端100c、…、用户终端100n可以分别与上述服务器10进行网络连接,以便于每个用户终端可以通过该网络连接与服务器10进行数据交互。例如,用户终端100a可以基于目标线程对待传输数据对应的待渲染数据(如组件数据)进行渲染并显示至用户界面。本申请实施例可以将业务场景中使用负载所需要传输的数据统称为待传输数据。本申请实施例可以将基于目标线程对传送至目标线程的数据进行数据转换后所得到的数据统称为待渲染数据。其中,目标线程可以为UI线程,具有数据渲染功能以及显示功能。用户可以在用户界面上查看渲染后的数据(比如,终端组件),进一步可以通过用户终端100a向服务器10发送针对上述渲染后的数据的建议反馈信息。其中,该服务器10可以为具有Hippy框架(浏览器自研的前端开发技术)的后台服务器,比如,QQ浏览器的后台服务器。
本申请提供的数据传输方法可适用于多种业务场景(如浏览器的资讯场景)使用负载所存在的各种数据传递(如从JS线程传送至UI线程或者从UI线程传送至JS线程)的场景。可以理解,在浏览器的多种业务开发场景中,在Hippy框架下对浏览器业务的开发可以不用随着浏览器版本的更新进行发布,由于浏览器伺服端可能会每周都发新版本,通过Hippy框架进行业务开发可以提高用户(如前端工作人员)的体验效果。其中,Hippy框架可以包含三个线程,JS线程、JSBridge线程以及UI线程。比如,在浏览器的资讯场景中,用户如果要在浏览器中查看多篇资讯正文文章,此时无需从后台服务器获取资讯正文文章数据,可以通过目标数据传输模式将资讯正文文章数据从JS线程传送至UI线程。此时,UI线程可以将资讯正文文章数据渲染并显示至用户界面,进而用户可以在用户界面上直接查看资讯正文文章。为方便描述,下面将以待传输数据从JS线程传送至UI线程为例进行说明,以下不再赘述。
其中,计算机设备对待传输数据进行数据传输的具体实现方式可以参见下述图2-图6所对应的实施例。
进一步地,请参见图2,图2是本申请实施例提供的一种数据传输方法的流程示意图。如图2所示,该方法可以由计算机设备执行,包括以下步骤S101-步骤S103:
步骤S101,获取待传输数据。
可以理解,这里的待传输数据的可以为小数据(如几个字节的数据)或者大数据(如资讯正文文章数据或者组件数据),待传输数据的数据量(为方便描述可以目标数据量进行说明)后续可以用于选择合适的用于传输待传输数据的目标数据传输模式。其中,待传输数据可以为第一数据格式的数据,比如,第一数据格式可以为JS对象(JS Object)数据格式,待传输数据可以为JS Object数据格式的数据(如前端开发人员所编写的JS代码)。
步骤S102,确定待传输数据的目标数据量,并根据目标数据量确定用于传输待传输数据的目标数据传输模式。
在一些可行的实施方式中,计算机设备在确定待传输数据的目标数据量之后,可以确定用于传输待传输数据的至少一种数据传输模式,其中一种数据传输模式对应一个传输数据量范围。每种数据传输模式对应的传输数据量范围均不同,便于后续基于目标数据量确定合适且高效的目标数据传输模式。进一步地,计算机设备可以从至少一种数据传输模式对应的至少一个传输数据量范围中确定出包含目标数据量的目标传输数据量范围,并将目标传输数据量范围对应的数据传输模式确定为用于传输待传输数据的目标数据传输模式。其中,至少一种数据传输模式中可以包括第一数据传输模式、第二数据传输模式以及第三数据传输模式。第一数据传输模式对应的传输数据量范围为大于零且小于或者等于第一传输数据量阈值,第二数据传输模式对应的传输数据量范围为大于第一传输数据量阈值且小于或者等于第二传输数据量阈值,第三数据传输模式对应的传输数据量范围为大于第二传输数据量阈值。其中,第一传输数据量阈值(如1K或者其它值)小于第二传输数据量阈值(如15K或者其它值)。例如,第一传输数据量阈值可以为1K,第二传输数据量阈值可以为15K,第一数据传输模式对应的传输数据量范围可以表示为(0,1K],第二数据传输模式对应的传输数据量范围可以表示为(1K,15K],第三数据传输模式对应的传输数据量范围可以表示为(15K,∞)。由此可见,计算机设备可以根据目标数据量的大小选择高效的目标数据传输模式,从而解决了Hippy框架前端开发数据传输低效的问题,从而提高了数据传输效率。
为便于理解,请参见图3,图3是本申请实施例提供的一种确定目标数据传输模式的场景示意图。为方便描述,下面将以第一传输数据量阈值为1K以及第二传输数据量阈值为15K为例进行说明,以下不再赘述。如图3所示,用户终端(如上述图1中的用户终端100a)可以确定待传输数据的目标数据量,在目标数据量大于零且小于或者等于1K时,将第一数据传输模式对应的传输数据量范围(0,1K]作为目标传输数据量范围,并将(0,1K]对应的第一数据传输模式确定为用于传输待传输数据的目标数据传输模式。在目标数据量大于1K且小于或者等于15K时,用户终端可以将第二数据传输模式对应的传输数据量范围(1K,15K]作为目标传输数据量范围,并将(1K,15K]对应的第二数据传输模式确定为用于传输待传输数据的目标数据传输模式。在目标数据量大于15K时,用户终端可以将第三数据传输模式对应的传输数据量范围(15K,∞)作为目标传输数据量范围,并将(15K,∞)对应的第三数据传输模式确定为用于传输待传输数据的目标数据传输模式。
步骤S103,基于目标数据传输模式将待传输数据传送至目标线程,并基于目标线程确定待传输数据对应的待渲染数据。
在一些可行的实施方式中,基于第一数据传输模式对待传输数据进行数据传输的过程可以包含以下描述,计算机设备可以基于第一线程将待传输数据传输至第二线程。此时,计算机设备可以基于第二线程将待传输数据转换为字符串并将字符串转换为第二数据格式的目标传输数据,并基于第二线程将目标传输数据传输至目标线程。进一步地,计算机设备可以基于目标线程中的数据传输协议将目标传输数据转换为目标数据格式的待渲染数据,从而完成了基于第一数据传输模式对待传输数据进行数据传输的整个数据传输过程。可以理解,计算机设备在基于第一数据传输模式对待传输数据进行数据传输的过程中,由于各个线程中所采用的语言(也可以称为数据格式)不同,因此在将待传输数据从一个线程传输至另一个线程之后,需要另一个线程对待传输数据进行数据转换得到这个线程所兼容的数据格式的数据之后,才可以对数据转换后的数据进行存储。
可以理解,计算机设备可以基于第一线程将待传输数据传输至第二线程。在第二线程读取到待传输数据之后,计算机设备可以基于第二线程将待传输数据转换为字符串,并在第二线程的工作内存中为字符串分配内存以存储字符串。这里的分配内存以存储字符串的过程可以理解为在第二线程中对字符串进行赋值(即内存拷贝)。进一步地,计算机设备可以基于第二线程将字符串转换为第二数据格式(如Json对象(JsonObject)数据格式)的目标传输数据,并在第二线程的工作内存中为目标传输数据分配内存以存储目标传输数据。这里的分配内存以存储目标传输数据的过程可以理解为在第二线程中对目标传输数据进行赋值(即内存拷贝)。此时,计算机设备可以基于第二线程将目标传输数据传输至目标线程。在目标线程读取到目标传输数据之后,计算机设备可以基于目标线程中的数据传输协议(如HippyMap协议)将目标传输数据转换为目标数据格式(如HippyMap协议对应的HippyMap数据格式)的待渲染数据,并在目标线程中为待渲染数据分配HippyMap内存以存储待渲染数据。这里的分配HippyMap内存以存储待渲染数据的过程可以理解为在目标线程中对待渲染数据进行赋值(即内存拷贝)。在第一数据传输模式中,第一线程可以为上述JS线程,第二线程可以为上述JSBridge线程,目标线程可以为UI线程。其中,第一数据传输模式适用于传输小数据,上述分配内存以及内存拷贝的过程不会导致数据传输的性能问题。
为便于理解,请参见图4a,图4a是本申请实施例提供的一种第一数据传输模式的数据传输示意图。如图4a所示,基于第一数据传输模式对待传输数据进行数据传输的过程可以包含以下描述,计算机设备可以基于JS线程将JS Object(JS对象)数据格式的待传输数据传输至JSBridge线程。在JSBridge线程读取到JS Object数据格式的待传输数据之后,计算机设备可以基于JSBridge线程的V8引擎(一种JS引擎)将待传输数据转换为C语言字符串(String)数据格式的字符串,并在JSBridge线程的工作内存中为字符串分配内存以存储字符串。进一步地,计算机设备可以基于JSBridge线程中java对应的json转化库将字符串转换为JsonObject(Json对象)数据格式的目标传输数据,并在JSBridge线程的工作内存中为目标传输数据分配内存以存储目标传输数据。此时,计算机设备可以基于JSBridge线程将目标传输数据传输至UI线程。在UI线程读取到目标传输数据之后,计算机设备可以基于UI线程中的HippyMap协议将目标传输数据转换为HippyMap数据格式的待渲染数据,并在UI线程的工作内存中为待渲染数据分配HippyMap内存以存储待渲染数据。
进一步地,为便于理解,请参见图4b,图4b是本申请实施例提供的一种第一数据传输模式的数据传输示意图。如图4b所示,结合上述图4a对应实施例中基于第一数据传输模式对待传输数据进行数据传输的描述,可以得到在上述传输过程中共进行了3次数据转换和3次内存分配。由此可见,计算机设备在通过第一数据传输模式传输小数据的过程中,上述数据转换和内存分配的过程不会导致性能问题。
在一些可行的实施方式中,基于第二数据传输模式对待传输数据进行数据传输的过程可以包含以下描述,计算机设备可以基于第一线程将待传输数据传输至第二线程。此时,计算机设备可以基于第二线程中的二进制传输协议将待传输数据转换为二进制流数据,并基于第二线程将二进制流数据传输至目标线程。进一步地,计算机设备可以基于目标线程将二进制流数据还原为待传输数据,并基于目标线程中的数据传输协议将待传输数据转换为目标数据格式的待渲染数据,从而完成了基于第二数据传输模式对待传输数据进行数据传输的整个数据传输过程。应当理解,计算机设备在基于第二数据传输模式对待传输数据进行数据传输的过程中,通过二进制传输协议对待传输数据进行数据转换,代替了第一数据传输模式中第二线程确定目标传输数据的过程,减少了一次数据转换和内存分配的过程,从而提高了数据传输效率。
可以理解,计算机设备可以基于第一线程将待传输数据传输至第二线程。在第二线程读取到待传输数据之后,计算机设备可以基于第二线程中的二进制传输协议(如HippyBuffer协议)将待传输数据转换为二进制流数据,并在第二线程的工作内存中为二进制流数据分配内存以存储二进制流数据。这里的分配内存以存储二进制流数据的过程可以理解为在第二线程中对二进制流数据进行赋值(即内存拷贝)。此时,计算机设备可以基于第二线程将二进制流数据传输至目标线程。在目标线程读取到二进制流数据之后,计算机设备可以基于目标线程将二进制流数据还原为待传输数据,并基于目标线程中的数据传输协议(如HippyMap协议)将待传输数据转换为目标数据格式(如HippyMap数据格式)的待渲染数据,并在目标线程中为待渲染数据分配HippyMap内存以存储待渲染数据。这里的分配HippyMap内存以存储待渲染数据的过程可以理解为在目标线程中对待渲染数据进行赋值(即内存拷贝)。
可以理解,二进制流数据对应的数据格式(即二进制传输协议对应的数据格式)包括数据类型、类型表示、数据长度、数据内容以及数据数量中的至少一种。数据类型包括基本数据类型和组合类型,基本数据类型是由目标语言(如java语言)对应的数据类型所确定的,组合类型包含字符串、数组以及结构体中的至少一种。比如,HippyBuffer协议中定义了基本数据类型可以为与java语言的多种数据类型对应的数据类型,HippyBuffer协议中也定义了组合类型可以为扩展的字符串、数组以及结构体。由于基本数据类型的数据长度是固定的,在数据类型为基本数据类型时,HippyBuffer协议对应的数据格式可以为(数据类型+数据内容)。在数据类型为组合类型时,二进制传输协议对应的数据格式为(类型表示+数据数量+数据内容)。
为便于理解,请参见图5a,图5a是本申请实施例提供的一种第二数据传输模式的数据传输示意图。如图5a所示,基于第二数据传输模式对待传输数据进行数据传输的过程可以包含以下描述,计算机设备可以基于JS线程将JS Object(JS对象)数据格式的待传输数据传输至JSBridge线程。在JSBridge线程读取到JS Object数据格式的待传输数据之后,计算机设备可以基于JSBridge线程中的HippyBuffer协议将待传输数据转换为二进制流数据,并在JSBridge线程的工作内存中为二进制流数据分配内存以存储二进制流数据。此时,计算机设备可以基于JSBridge线程将二进制流数据传输至UI线程。在UI线程读取到二进制流数据之后,计算机设备可以基于UI线程将二进制流数据还原为待传输数据,并基于UI线程中的HippyMap协议将待传输数据转换为HippyMap数据格式的待渲染数据,并在UI线程中为待渲染数据分配HippyMap内存以存储待渲染数据。
进一步地,请参见图5b,图5b是本申请实施例提供的一种第二数据传输模式的数据传输示意图。如图5b所示,结合上述图5a对应实施例中基于第二数据传输模式对待传输数据进行数据传输的描述,可以得到在上述传输过程中共进行了2次数据转换和2次内存分配。进一步地,请参见图5c,图5c是本申请实施例提供的一种二进制流数据对应的数据格式的结构示意图。如图5c所示,二进制流数据对应的数据格式(即HippyBuffer协议对应的数据格式)可以包含数据类型、数据长度、数据内容以及其它参数(如类型表示和数据数量),这种数据格式高效没有冗余数据,可以提高数据传输效率。由此可见,计算机设备在通过第二数据传输模式传输大数据的过程中,为了减轻内存分配和内存拷贝所导致的性能问题,可以通过HippyBuffer协议将待传输数据转换为二进制流数据,高效没有冗余数据,而且线程(如目标线程)可以通过读取二进制流数据还原出原来的数据(如待传输数据),从而可以高效传输数据,提高了传输效率。
在一些可行的实施方式中,在基于第三数据传输模式对待传输数据进行数据传输的过程可以包含以下描述,计算机设备可以基于第一线程将目标键值对存储至缓存池。其中,目标键值对包含待传输数据以及待传输数据对应的键对象。此时,计算机设备可以基于第一线程将键对象传输至第二线程,并基于第二线程将键对象传输至目标线程。进一步地,计算机设备可以基于目标线程从缓存池中获取键对象对应的待传输数据,并基于目标线程中的数据传输协议将待传输数据转换为目标数据格式的待渲染数据,从而完成了基于第三数据传输模式对待传输数据进行数据传输的整个数据传输过程。在目标线程读取到待传输数据之后,计算机设备可以不对待传输数据进行清理,通过标记清除算法对待传输数据进行自动淘汰(即内存释放)。可选的,计算机设备也可以通过其它用于对待传输数据进行自动淘汰的方法或者算法对待传输数据进行自动淘汰,具体可根据实际应用场景确定,在此不作限制。可以理解,缓存池可以包含三端接口,第一线程、第二线程以及目标线程中的任意一个线程均可以根据三端接口中该线程对应的端口将数据写入缓存池,或者根据数据的键对象从缓存池中读取数据,其中,一个线程对应一个接口。
为便于理解,请参见图6,图6是本申请实施例提供的一种第三数据传输模式的数据传输示意图。如图6所示,缓存池中存储有目标键值对,该目标键值对可以包含待传输数据以及待传输数据对应的键对象(如key)。基于第三数据传输模式对待传输数据进行数据传输的过程可以包含以下描述,计算机设备可以基于第三数据传输模式确定JS线程,基于JS线程将键对象key传输至第二线JSBridge线程,并基于JSBridge线程将键对象key传输至UI线程。进一步地,计算机设备可以基于UI线程从缓存池中获取键对象key对应的待传输数据,并基于UI线程中的数据传输协议将待传输数据转换为HippyMap数据格式的待渲染数据。由此可见,计算机设备在通过第三数据传输模式传输大数据时,可以通过缓存池的方式提高内存的复用率,并且减少了大数据传输的成本,从而提高了数据传输效率。
可选的,在确定待渲染数据之后,计算机设备可以基于UI线程的数据渲染功能对待渲染数据进行渲染,并将渲染后的数据(如咨询正文文章或者终端组件)显示至用户界面。
在本申请实施例中,计算机设备可以在获取待传输数据之后确定待传输数据的目标数据量,这里的目标数据量后续可以用于确定待传输数据的目标数据传输模式,进而可以根据不同的数据量去选择不同的数据传输方案。进一步的,在确定目标数据传输模式之后,计算机设备可以基于目标数据传输模式将待传输数据传送至目标线程,基于目标线程确定待传输数据对应的待渲染数据,并基于目标线程对待渲染数据进行渲染并显示至用户界面,进而可以基于所选择的目标数据传输模式传输待传输数据,从而提高了数据传输效率。
进一步地,请参见图7,图7是本申请实施例提供的一种数据传输装置的结构示意图。该数据传输装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据传输装置为一个应用软件;该数据传输装置可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该数据传输装置1可以运行于用户终端,该用户终端可以为上述图1所对应实施例中的用户终端100a。该数据传输装置1可以包括:获取模块10、模式确定模块20、传送确定模块30以及渲染显示模块40。
获取模块10,用于获取待传输数据。
模式确定模块20,用于确定待传输数据的目标数据量,并根据目标数据量确定用于传输待传输数据的目标数据传输模式。
其中,模式确定模块20包括:第一确定单元201和第二确定单元202。
第一确定单元201,用于确定用于传输待传输数据的至少一种数据传输模式,其中一种数据传输模式对应一个传输数据量范围;
第二确定单元202,用于从至少一种数据传输模式对应的至少一个传输数据量范围中确定出包含目标数据量的目标传输数据量范围,并将目标传输数据量范围对应的数据传输模式确定为用于传输待传输数据的目标数据传输模式。
其中,至少一种数据传输模式中包括第一数据传输模式、第二数据传输模式以及第三数据传输模式;
第一数据传输模式对应的传输数据量范围为大于零且小于或者等于第一传输数据量阈值,第二数据传输模式对应的传输数据量范围为大于第一传输数据量阈值且小于或者等于第二传输数据量阈值,第三数据传输模式对应的传输数据量范围为大于第二传输数据量阈值,第一传输数据量阈值小于第二传输数据量阈值。
其中,该第一确定单元201和第二确定单元202的具体实现方式可以参见上述图2所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
传送确定模块30,用于基于目标数据传输模式将待传输数据传送至目标线程,并基于目标线程确定待传输数据对应的待渲染数据。
其中,传送确定模块30包括:第一传输单元301、第一转换传输单元302以及第一转换单元303。
第一传输单元301,用于在目标数据传输模式为第一数据传输模式时,基于第一线程将待传输数据传输至第二线程;
第一转换传输单元302,用于基于第二线程将待传输数据转换为字符串并将字符串转换为第二数据格式的目标传输数据,并基于第二线程将目标传输数据传输至目标线程;
第一转换单元303,用于基于目标线程中的数据传输协议将目标传输数据转换为目标数据格式的待渲染数据。
其中,该第一传输单元301、第一转换传输单元302以及第一转换单元303的具体实现方式可以参见上述图2所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
可选的,传送确定模块30可包括:第二传输单元304、第二转换传输单元305以及第二转换单元306。
第二传输单元304,用于在目标数据传输模式为第二数据传输模式时,基于第一线程将待传输数据传输至第二线程;
第二转换传输单元305,用于基于第二线程中的二进制传输协议将待传输数据转换为二进制流数据,并基于第二线程将二进制流数据传输至目标线程;
第二转换单元306,用于基于目标线程将二进制流数据还原为待传输数据,并基于目标线程中的数据传输协议将待传输数据转换为目标数据格式的待渲染数据。
其中,二进制流数据对应的数据格式包括数据类型、类型表示、数据长度、数据内容以及数据数量中的至少一种;
数据类型包括基本数据类型和组合类型,基本数据类型是由目标语言对应的数据类型所确定的,组合类型包含字符串、数组以及结构体中的至少一种。
其中,该第二传输单元304、第二转换传输单元305以及第二转换单元306的具体实现方式可以参见上述图2所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
可选的,传送确定模块30可包括:存储单元307、第三传输单元308以及获取转换单元309。
存储单元307,用于在目标数据传输模式为第三数据传输模式时,基于第一线程将目标键值对存储至缓存池,目标键值对包含待传输数据以及待传输数据对应的键对象;
第三传输单元308,用于基于第三数据传输模式确定第一线程,基于第一线程将键对象传输至第二线程,并基于第二线程将键对象传输至目标线程;
获取转换单元309,用于基于目标线程从缓存池中获取键对象对应的待传输数据,并基于目标线程中的数据传输协议将待传输数据转换为目标数据格式的待渲染数据。
其中,该存储单元307、第三传输单元308以及获取转换单元309的具体实现方式可以参见上述图2所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,上述数据传输装置1还包括:
渲染显示模块40,用于基于目标线程对待渲染数据进行渲染并显示至用户界面。
其中,该获取模块10,模式确定模块20,传送确定模块30以及渲染显示40的具体实现方式可以参见上述图2所对应实施例中对步骤S101-步骤S103的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图8,图8是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,该计算机设备1000可以为上述图1对应实施例中的用户终端100a,该计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图8所示的计算机设备1000中,网络接口1004主要用于与服务器进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待传输数据;
确定待传输数据的目标数据量,并根据目标数据量确定用于传输待传输数据的目标数据传输模式;
基于目标数据传输模式将待传输数据传送至目标线程,并基于目标线程确定待传输数据对应的待渲染数据。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图2所对应实施例中对该数据传输方法的描述,也可执行前文图7所对应实施例中对该数据传输装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据传输装置1所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图2所对应实施例中对该数据传输方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中提供的数据传输方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。上述计算机可读存储介质可以是前述任一实施例提供的数据传输装置或者上述设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本发明的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
获取待传输数据;
确定所述待传输数据的目标数据量,并根据所述目标数据量确定用于传输所述待传输数据的目标数据传输模式;
基于所述目标数据传输模式将所述待传输数据传送至目标线程,并基于所述目标线程确定所述待传输数据对应的待渲染数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据量确定用于传输所述待传输数据的目标数据传输模式,包括:
确定用于传输所述待传输数据的至少一种数据传输模式,其中一种数据传输模式对应一个传输数据量范围;
从所述至少一种数据传输模式对应的至少一个传输数据量范围中确定出包含所述目标数据量的目标传输数据量范围,并将所述目标传输数据量范围对应的数据传输模式确定为用于传输所述待传输数据的目标数据传输模式。
3.根据权利要求2所述的方法,其特征在于,所述至少一种数据传输模式中包括第一数据传输模式、第二数据传输模式以及第三数据传输模式;
所述第一数据传输模式对应的传输数据量范围为大于零且小于或者等于第一传输数据量阈值,所述第二数据传输模式对应的传输数据量范围为大于所述第一传输数据量阈值且小于或者等于第二传输数据量阈值,所述第三数据传输模式对应的传输数据量范围为大于所述第二传输数据量阈值,所述第一传输数据量阈值小于所述第二传输数据量阈值。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标数据传输模式将所述待传输数据传送至目标线程,并基于所述目标线程确定所述待传输数据对应的待渲染数据,包括:
在所述目标数据传输模式为所述第一数据传输模式时,基于第一线程将所述待传输数据传输至第二线程;
基于所述第二线程将第一数据格式的所述待传输数据转换为字符串并将所述字符串转换为第二数据格式的目标传输数据,并基于所述第二线程将所述目标传输数据传输至目标线程;
基于所述目标线程中的数据传输协议将所述目标传输数据转换为目标数据格式的待渲染数据。
5.根据权利要求3所述的方法,其特征在于,所述基于所述目标数据传输模式将所述待传输数据传送至目标线程,并基于所述目标线程确定所述待传输数据对应的待渲染数据,包括:
在所述目标数据传输模式为所述第二数据传输模式时,基于所述第一线程将所述待传输数据传输至第二线程;
基于所述第二线程中的二进制传输协议将所述待传输数据转换为二进制流数据,并基于所述第二线程将所述二进制流数据传输至目标线程;
基于所述目标线程将所述二进制流数据还原为所述待传输数据,并基于所述目标线程中的数据传输协议将所述待传输数据转换为目标数据格式的待渲染数据。
6.根据权利要求5所述的方法,其特征在于,所述二进制流数据对应的数据格式包括数据类型、类型表示、数据长度、数据内容以及数据数量中的至少一种;
所述数据类型包括基本数据类型和组合类型,所述基本数据类型是由目标语言对应的数据类型所确定的,所述组合类型包含字符串、数组以及结构体中的至少一种。
7.根据权利要求3所述的方法,其特征在于,所述基于所述目标数据传输模式将所述待传输数据传送至目标线程,并基于所述目标线程确定所述待传输数据对应的待渲染数据,包括:
在所述目标数据传输模式为所述第三数据传输模式时,基于所述第一线程将目标键值对存储至缓存池,所述目标键值对包含所述待传输数据以及所述待传输数据对应的键对象;
基于所述第一线程将所述键对象传输至第二线程,并基于所述第二线程将所述键对象传输至目标线程;
基于所述目标线程从所述缓存池中获取所述键对象对应的所述待传输数据,并基于所述目标线程中的数据传输协议将所述待传输数据转换为目标数据格式的待渲染数据。
8.一种数据传输装置,其特征在于,包括:
获取模块,用于获取待传输数据;
模式确定模块,用于确定所述待传输数据的目标数据量,并根据所述目标数据量确定用于传输所述待传输数据的目标数据传输模式;
传送确定模块,用于基于所述目标数据传输模式将所述待传输数据传送至目标线程,并基于所述目标线程确定所述待传输数据对应的待渲染数据。
9.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010934997.3A CN114244912B (zh) | 2020-09-08 | 2020-09-08 | 数据传输方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010934997.3A CN114244912B (zh) | 2020-09-08 | 2020-09-08 | 数据传输方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114244912A true CN114244912A (zh) | 2022-03-25 |
CN114244912B CN114244912B (zh) | 2023-11-17 |
Family
ID=80742452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010934997.3A Active CN114244912B (zh) | 2020-09-08 | 2020-09-08 | 数据传输方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114244912B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116170522A (zh) * | 2023-04-21 | 2023-05-26 | 深圳市智汉科技有限公司 | 数据传输方法及装置、电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018049933A1 (zh) * | 2016-09-14 | 2018-03-22 | 广东欧珀移动通信有限公司 | 数据迁移方法及相关产品 |
CN109101300A (zh) * | 2018-06-14 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 一种页面渲染方法、装置及终端 |
CN109194647A (zh) * | 2018-08-30 | 2019-01-11 | 北京金山安全软件有限公司 | 数据传输方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-08 CN CN202010934997.3A patent/CN114244912B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018049933A1 (zh) * | 2016-09-14 | 2018-03-22 | 广东欧珀移动通信有限公司 | 数据迁移方法及相关产品 |
CN109101300A (zh) * | 2018-06-14 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 一种页面渲染方法、装置及终端 |
CN109194647A (zh) * | 2018-08-30 | 2019-01-11 | 北京金山安全软件有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王继周, 李成名: "万维网地理信息系统中矢量空间数据的多线程传输实现技术", 测绘通报, no. 02 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116170522A (zh) * | 2023-04-21 | 2023-05-26 | 深圳市智汉科技有限公司 | 数据传输方法及装置、电子设备、存储介质 |
CN116170522B (zh) * | 2023-04-21 | 2023-06-30 | 深圳市智汉科技有限公司 | 数据传输方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114244912B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846753B (zh) | 用于处理数据的方法和装置 | |
CN110391938B (zh) | 用于部署服务的方法和装置 | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN112653579A (zh) | 一种基于OpenResty的灰度发布方法及相关设备 | |
CN110851136A (zh) | 数据获取方法、装置、电子设备及存储介质 | |
CN111723314B (zh) | 网页展示方法、装置、电子设备及计算机可读存储介质 | |
CN114244912B (zh) | 数据传输方法、装置、计算机设备及存储介质 | |
CN111324395B (zh) | 调用方法、装置和计算机可读存储介质 | |
CN113626512A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN117093619A (zh) | 一种规则引擎处理方法、装置、电子设备及存储介质 | |
CN109408057B (zh) | 自动生成代码的方法、装置、介质和计算设备 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN116450723A (zh) | 数据提取方法、装置、计算机设备及存储介质 | |
CN115934076A (zh) | 跨平台客户端的微服务提供装置、方法和电子设备 | |
CN116226189A (zh) | 缓存数据查询方法、装置、电子设备和计算机可读介质 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN111796878B (zh) | 一种应用于单页应用的资源拆分、加载方法和装置 | |
CN114637499A (zh) | 可视化组件处理方法、装置、设备及介质 | |
CN113779018A (zh) | 一种数据处理方法和装置 | |
CN116257707B (zh) | 一种应用发布方法、装置、电子设备及存储介质 | |
CN112749353A (zh) | 网页图标的处理方法和装置 | |
CN113485780B (zh) | 一种基于web服务器的桌面传输方法 | |
EP3872630A2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN111915304B (zh) | 数字元素的数据处理方法、装置、设备及存储介质 | |
CN116204201B (zh) | 业务处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |