一种数据拷贝方法、设备及存储介质与流程
未命名
08-26
阅读:209
评论:0

1.本发明涉及数据存储领域,具体涉及一种数据拷贝方法、设备及存储介质。
背景技术:
2.目前,随着各种终端及通信业务的日益增长需求,经常会遇到将一个系统的数据拷贝到另一个系统的情况,在此过程中,最耗费时间的就是数据拷贝。数据拷贝即数据的复制,是指将一段数据从一个存储空间中复制到另一个存储空间中。
3.现有的数据拷贝方法比较单一,对于待拷贝数据的的字节长度为非2的整数幂次方时,都是先将待拷贝数据按2n进行数据拷贝,然后判断剩下数据的数据字节长度是否为2的整数幂次方,若不是再按2m进行数据拷贝,再剩下的数据再判断是否为2的整数幂次方,若不是再按2
p
进行数据拷贝,直至最后剩下的数据字节长度为2的整数幂次方时,整个数据才完全拷贝成功,然后在传输,最终意味着该数据的拷贝成功。
4.举例说明:如一个31字节的数据,将被分级拷贝成24=16字节、23=8字节、22=4字节、21=2字节、20=1字节,传输。由此可见,此类数据拷贝过程数据分级拷贝次数较多,导致数据拷贝时拷贝速度较低,拷贝时间较长。
技术实现要素:
5.发明目的:本发明目的是提供一种数据拷贝方法、设备及存储介质,解决了现有的数据拷贝过程数据分级拷贝次数较多,导致数据拷贝时拷贝速度较低,拷贝时间较长的问题。
6.技术方案:本发明一种数据拷贝方法,包括以下步骤:
7.(1)接收待拷贝数据的拷贝请求,将第一拷贝区的待拷贝数据进行拷贝得到第一拷贝数据和第二拷贝数据;
8.(2)将第一拷贝数据的拷贝起始点按字节顺序拷贝至第二拷贝区的内存中,然后将第二拷贝数据的拷贝起始点进行移位处理后,再按字节顺序拷贝至第二拷贝区的内存中;
9.(3)第一拷贝数据和第二拷贝数据拷贝完成,则第二拷贝区完成待拷贝数据的拷贝。
10.进一步地,所述第一拷贝数据和第二拷贝数据的字节长度均为2的整数幂次方。
11.进一步地,所述将第一拷贝区的待拷贝数据进行拷贝得到第一拷贝数据和第二拷贝数据的具体过程为:
12.1)获取待拷贝数据的字节长度记为l,根据字节长度l寻找最近邻的2n,且字节长度l≥2n,按从前往后的顺序将待拷贝数据中第一字节至第2n字节长度的数据从待拷贝数据中拷贝出来得到第一拷贝数据,n为自然数;
13.2)对待拷贝数据中除第一拷贝数据之外的剩余数据获取其字节长度记为s,根据字节长度s寻找最近邻的2m,且2m≥字节长度s,并将2m与字节长度s作差得到差数w,按从前
往后的顺序将待拷贝数据中第2n+1-w字节至第l字节长度的数据从待拷贝数据中拷贝出来得到第二拷贝数据,m为自然数。
14.进一步地,所述将第一拷贝数据的拷贝起始点按字节顺序拷贝至第二拷贝区的内存中,然后将第二拷贝数据的拷贝起始点进行移位处理后,再按字节顺序拷贝至第二拷贝区的内存中的具体过程为:
15.a)将第一拷贝数据的拷贝起始点设置在第二拷贝区内存的第一字节位置,根据第一拷贝数据的字节长度,将2n字节长度的第一拷贝数据按字节顺序拷贝至第二拷贝区的内存中,此时第二拷贝区内存的第一字节至第2n字节存储第一拷贝数据;
16.b)将第二拷贝数据的拷贝起始点先设置在第二拷贝区内存的第2n+1字节位置,然后向左偏移w字节至第2n+1-w字节位置,然后根据第二拷贝数据的字节长度,将第二拷贝数据按字节顺序拷贝至第二拷贝区的内存中,其中位置重复部分的数据由第二拷贝数据进行覆盖,此时第二拷贝区内存的第2n+1-w字节至第l字节存储第二拷贝数据。
17.进一步地,所述待拷贝数据的字节长度为非2的整数幂次方。
18.进一步地,所述第二拷贝区内存的字节长度与待拷贝数据的字节长度相同。
19.本发明还包括一种计算机设备,所述计算机设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述权利要求中任一所述数据拷贝方法。
20.本发明还包括一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述权利要求中任一所述数据拷贝方法。
21.本发明的有益效果:在拷贝内存不溢出的情况下,本发明将待拷贝数据进行分开拷贝得到第一拷贝数据和第二拷贝数据,第一拷贝数据和第二拷贝数据的字节长度均为2的整数幂次方,同时在拷贝至第二拷贝区内存的过程中,对第二拷贝数据的拷贝起始点进行移位处理,使得拷贝不溢出。本发明将待拷贝数据分为两部分拷贝,相对于现有技术的方法将数据按2的整数幂次方分级多次拷贝,直至最后的数据字节长度为2的整数幂次方,本发明整个数据的拷贝速度快,拷贝时间短。
附图说明
22.图1为本发明流程图;
23.图2为待拷贝数据为31字节时,采用本发明与现有技术的拷贝方式对比图;
24.图3为多个不同字节的待拷贝数据,采用本发明方法与现有技术的效果对比图;
25.图4为与图3对应的运行日志结果图。
具体实施方式
26.下面结合附图和实施例对本发明做进一步描述:
27.在数据拷贝的过程中,数据的字节长度一般分为2的整数幂次方或非2的整数幂次方,其中字节长度为非2的整数幂次方这类数据占极大多数。由于拷贝至目标内存的过程中数据不能溢出,因此现有的拷贝方法比较单一,就是对于待拷贝数据的的字节长度为非2的整数幂次方时,都是先将待拷贝数据按2n进行数据拷贝,然后判断剩下数据的数据字节长度是否为2的整数幂次方,若不是再按2m进行数据拷贝,再剩下的数据再判断是否为2的整
数幂次方,若不是再按2
p
进行数据拷贝,直至最后剩下的数据字节长度为2的整数幂次方时,整个数据才完全拷贝成功,然后在传输,最终意味着该数据的拷贝成功。整个过程将待拷贝数据分级多次拷贝,拷贝速度较低,拷贝时间较长。
28.如图1所示,本发明的数据拷贝方法,将待拷贝数据分为两部分拷贝,然后在拷贝至目标内存时,对第二部分拷贝数据的拷贝起始点进行移位处理,使得拷贝不溢出;这个拷贝过程,既保证了拷贝数据不溢出,也使得分级拷贝次数少,拷贝速度快,拷贝时间短。
29.具体的,本发明一种数据拷贝方法,包括以下步骤:
30.(1)接收待拷贝数据的拷贝请求,待拷贝数据的字节长度为非2的整数幂次方,然后将第一拷贝区的待拷贝数据进行拷贝得到第一拷贝数据和第二拷贝数据,其具体过程为:
31.1)获取待拷贝数据的字节长度记为l,根据字节长度l寻找最近邻的2n,且字节长度l≥2n,按从前往后的顺序将待拷贝数据中第一字节至第2n字节长度的数据从待拷贝数据中拷贝出来得到第一拷贝数据,n为自然数;
32.2)对待拷贝数据中除第一拷贝数据之外的剩余数据获取其字节长度记为s,根据字节长度s寻找最近邻的2m,且2m≥字节长度s,并将2m与字节长度s作差得到差数w,按从前往后的顺序将待拷贝数据中第2n+1-w字节至第l字节长度的数据从待拷贝数据中拷贝出来得到第二拷贝数据,m为自然数。
33.举例说明:如图2所示,假设待拷贝数据的字节长度为31,根据字节长度31寻找最近邻的2n,且字节长度31≥2n,那么2n为16,然后按从前往后的顺序将待拷贝数据中第1字节至第16字节长度的数据从待拷贝数据中拷贝出来得到第一拷贝数据;
34.对待拷贝数据中除第一拷贝数据之外的剩余数据获取其字节长度为15字节,根据字节长度15寻找最近邻的2m,且2m≥字节长度15,那么2m也为16,然后作差得到差数w为1,2n+1-w为16;接着,按从前往后的顺序将待拷贝数据中第16字节至第31字节长度的数据从待拷贝数据中拷贝出来得到第二拷贝数据;第一拷贝数据和第二拷贝数据的字节长度均为2的整数幂次方;
35.而采用现有技术的话,是将31字节的待拷贝数据分级多次拷贝,为24=16字节、23=8字节、22=4字节、21=2字节、20=1字节,直接可以看出本发明的拷贝次数少。
36.由于第一拷贝数据和第二拷贝数据的字节长度均为2的整数幂次方,第二拷贝区内存的字节长度与待拷贝数据的字节长度相同,如果直接拷贝至第二拷贝区的内存中,会导致数据溢出;接下来本发明就是采用移位处理,消除数据溢出;也就是将第一拷贝数据的拷贝起始点按字节顺序拷贝至第二拷贝区的内存中,然后将第二拷贝数据的拷贝起始点进行移位处理后,再按字节顺序拷贝至第二拷贝区的内存中,具体过程为:
37.a)将第一拷贝数据的拷贝起始点设置在第二拷贝区内存的第一字节位置,根据第一拷贝数据的字节长度,将2n字节长度的第一拷贝数据按字节顺序拷贝至第二拷贝区的内存中,此时第二拷贝区内存的第一字节至第2n字节存储第一拷贝数据;
38.b)将第二拷贝数据的拷贝起始点先设置在第二拷贝区内存的第2n+1字节位置,然后向左偏移w字节至第2n+1-w字节位置,然后根据第二拷贝数据的字节长度,将第二拷贝数据按字节顺序拷贝至第二拷贝区的内存中,其中位置重复部分的数据由第二拷贝数据进行覆盖,此时第二拷贝区内存的第2n+1-w字节至第l字节存储第二拷贝数据。
39.举例说明:第一拷贝数据为第1字节至第16字节长度,将第一拷贝数据的拷贝起始点设置在第二拷贝区内存的第一字节位置,根据第一拷贝数据的16字节长度,将第一拷贝数据按字节顺序拷贝至第二拷贝区的内存中,此时第二拷贝区内存的第一字节至第16字节存储第一拷贝数据;接着,将第二拷贝数据的拷贝起始点先设置在第二拷贝区内存的第2n+1字节位置即17字节位置,然后向左偏移w字节至第2n+1-w字节位置,w为1,即偏移1字节至第16字节位置,然后根据第二拷贝数据的字节长度,将第二拷贝数据按字节顺序拷贝至第二拷贝区的内存中,其中位置重复部分的数据采用覆盖的方式被后来的数据覆盖也就是被第二拷贝数据进行覆盖,此时第二拷贝区内存的第16字节至第31字节存储第二拷贝数据。
40.(3)第一拷贝数据和第二拷贝数据拷贝完成,则第二拷贝区完成待拷贝数据的拷贝。如图3和图4所示,本实施例还利用多个不同字节的待拷贝数据,采用本发明和现有技术分别对其拷贝所用时间进行记录,也能发现本发明拷贝时间短的优势。由此可见,采用本发明的数据拷贝方法,将待拷贝数据分为两部分拷贝,相对于现有技术的方法将数据按2的整数幂次方分级多次拷贝,直至最后的数据字节长度为2的整数幂次方,本发明整个数据的拷贝速度快,拷贝时间短,而且数据不会溢出。
41.本发明实施例还提供一种计算机设备,计算机设备至少包括处理器和存储器,存储器存储有计算机程序,处理器用于执行存储器中存储的计算机程序时实现本发明实施例的数据拷贝方法中的步骤。
42.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本发明实施例的数据拷贝方法中的步骤。
技术特征:
1.一种数据拷贝方法,其特征在于,包括以下步骤:(1)接收待拷贝数据的拷贝请求,将第一拷贝区的待拷贝数据进行拷贝得到第一拷贝数据和第二拷贝数据;(2)将第一拷贝数据的拷贝起始点按字节顺序拷贝至第二拷贝区的内存中,然后将第二拷贝数据的拷贝起始点进行移位处理后,再按字节顺序拷贝至第二拷贝区的内存中;(3)第一拷贝数据和第二拷贝数据拷贝完成,则第二拷贝区完成待拷贝数据的拷贝。2.根据权利要求1所述的一种数据拷贝方法,其特征在于:所述第一拷贝数据和第二拷贝数据的字节长度均为2的整数幂次方。3.根据权利要求1所述的一种数据拷贝方法,其特征在于:所述将第一拷贝区的待拷贝数据进行拷贝得到第一拷贝数据和第二拷贝数据的具体过程为:1)获取待拷贝数据的字节长度记为l,根据字节长度l寻找最近邻的2
n
,且字节长度l≥2
n
,按从前往后的顺序将待拷贝数据中第一字节至第2
n
字节长度的数据从待拷贝数据中拷贝出来得到第一拷贝数据,n为自然数;2)对待拷贝数据中除第一拷贝数据之外的剩余数据获取其字节长度记为s,根据字节长度s寻找最近邻的2
m
,且2
m
≥字节长度s,并将2
m
与字节长度s作差得到差数w,按从前往后的顺序将待拷贝数据中第2
n
+1-w字节至第l字节长度的数据从待拷贝数据中拷贝出来得到第二拷贝数据,m为自然数。4.根据权利要求3所述的一种数据拷贝方法,其特征在于:所述将第一拷贝数据的拷贝起始点按字节顺序拷贝至第二拷贝区的内存中,然后将第二拷贝数据的拷贝起始点进行移位处理后,再按字节顺序拷贝至第二拷贝区的内存中的具体过程为:a)将第一拷贝数据的拷贝起始点设置在第二拷贝区内存的第一字节位置,根据第一拷贝数据的字节长度,将2
n
字节长度的第一拷贝数据按字节顺序拷贝至第二拷贝区的内存中,此时第二拷贝区内存的第一字节至第2
n
字节存储第一拷贝数据;b)将第二拷贝数据的拷贝起始点先设置在第二拷贝区内存的第2
n
+1字节位置,然后向左偏移w字节至第2
n
+1-w字节位置,然后根据第二拷贝数据的字节长度,将第二拷贝数据按字节顺序拷贝至第二拷贝区的内存中,其中位置重复部分的数据由第二拷贝数据进行覆盖,此时第二拷贝区内存的第2
n
+1-w字节至第l字节存储第二拷贝数据。5.根据权利要求1所述的一种数据拷贝方法,其特征在于:所述待拷贝数据的字节长度为非2的整数幂次方。6.根据权利要求1所述的一种数据拷贝方法,其特征在于:所述第二拷贝区内存的字节长度与待拷贝数据的字节长度相同。7.一种计算机设备,其特征在于:所述计算机设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-6中任一所述数据拷贝方法。8.一种计算机可读存储介质,其特征在于:其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述数据拷贝方法。
技术总结
本发明公开了一种数据拷贝方法、设备及存储介质,该方法包括:首先接收待拷贝数据的拷贝请求,将第一拷贝区的待拷贝数据进行拷贝得到第一拷贝数据和第二拷贝数据;接着将第一拷贝数据的拷贝起始点按字节顺序拷贝至第二拷贝区的内存中,然后将第二拷贝数据的拷贝起始点进行移位处理后,再按字节顺序拷贝至第二拷贝区的内存中;最后第一拷贝数据和第二拷贝数据拷贝完成,则第二拷贝区完成待拷贝数据的拷贝。本发明将待拷贝数据进行分开拷贝得到第一拷贝数据和第二拷贝数据,同时在拷贝至第二拷贝区内存的过程中,对第二拷贝数据的拷贝起始点进行移位处理,使得拷贝不溢出,本发明整个数据的拷贝速度快,拷贝时间短。拷贝时间短。拷贝时间短。
技术研发人员:杨鸽 李亦 张超 李超龙 陈琦 唐斌
受保护的技术使用者:矩阵时光数字科技有限公司
技术研发日:2023.05.25
技术公布日:2023/8/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:多功能铁水包中铁水温度预测方法 下一篇:一种薄膜硅烷化表面改性系统