复制和剪切, 哪个速度更快?

本文通过实验对比了在同一分区及不同分区下文件剪切与复制的速度,并给出了原理分析。结果显示,在同一分区下剪切更快,而在不同分区下复制速度相当甚至更快。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        这是个有意思的问题, 网上扯淡的比较多, 有人争论, 复制更快, 有的人争论,剪切更快,有个人说, 一样快。

 

        我做了一个小实验, 在D盘内进行操作, 剪切比复制快, 文件越大, 效果越明显。 在D盘和E盘之间, 复制和剪切的速度貌似差不多, 但从原理上来讲, 复制应该更快。下面引用网上的一句话,我个人觉得很有道理:

 

       在同一个分区下的操作,剪切更快。因为在同一分区下,剪切是改写数据的逻辑地址,而复制相当于重新生成数据,所以剪切要快;不同分区之间的操作,复制更快。当然这个差距你可能感觉不到,都是向新的地址中生成新的数据,但是剪切多了一步要把原来的数据删掉,所以复制更快。在同一个分区下的操作,剪切更快。因为在同一分区下,剪切是改写数据的逻辑地址,而复制相当于重新生成数据,所以剪切要快;不同分区之间的操作,复制更快。当然这个差距你可能感觉不到,都是向新的地址中生成新的数据,但是剪切多了一步要把原来的数据删掉,所以复制更快。

 

        

         代码就是我的语言, 下面,我来模拟同一分区下的复制和剪切:

 

#include <iostream>
using namespace std;

typedef struct data
{
	int a;
	bool b;
	char c;
	short d;
}Data;


int main()
{
	Data x;
	x.a = 1;
	x.b = false;
	x.c = 'w';
	x.d = 2;

	Data y = x; // 复制, 费时费力

	Data *p = &x; // 剪切,轻松搞定

	return 0;

}


       再来模拟不同分区下的复制和剪切:

 

 

#include <iostream>
using namespace std;

typedef struct data
{
	int a;
	bool b;
	char c;
	short d;
}Data;


int main()
{
	Data x;
	x.a = 1;
	x.b = false;
	x.c = 'w';
	x.d = 2;
	
	// 复制
	Data y = x; 

	// 剪切(相对费时)
	Data z = x; 
	x.a = 0;
	x.b = false;
	x.c = '\0';
	x.d = 0;

	return 0;

}


       闲扯完毕。

 

 

        

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值