Winform程序,两次复制同一文件,一次速率为5M/s,一次速率高达500m/s,这是为什么?跪求大神解答

问题描述

我编了一个usb速率测试软件,Winform,复制一个4.6兆的文件到D盘,但两次复制,速率相差太大。这是为什么呢?跪求大神指点!这是复制程序:privatevoidUsb1Set(){if(cmb1.Text!=null)//获取待复制文件的下拉列表。{lbact1.Text=null;//复制时间lbafs1.Text=null;//文件大小lbats1.Text=null;//速率isDone[0]=false;//是否复制完成的标志我要同时测四个usb,这只是第一个file[0]=newFileInfo(cmb1.Text);//获取复制的文件的路径fileSize[0]=file[0].Length/1024;/./计算文件大小lbafs1.Text=fileSize[0].ToString()+"KB";dest[0]=newFileInfo(str+"\des1\"+file[0].Name);//声明复制目标地址Threadthread1=newThread(newThreadStart(Usb1));//复制线程thread1.Start();}}privatevoidUsb1(){lbProg1.Text="正在复制...";watch1.Restart();//初始化计时器stringfileName=dest[0].DirectoryName+"\"+dest[0].Name;file[0].CopyTo(fileName,true);//复制文件watch1.Stop();//停止计时copyTime[0]=watch1.Elapsed.TotalSeconds;//获取复制时间lbact1.Text=copyTime[0].ToString()+"s";lbats1.Text=(fileSize[0]/copyTime[0]/1024).ToString("0.00")+"Mb/s";//计算速率lbProg1.Text="复制完毕!";isDone[0]=true;File.Delete(fileName);//删除文件。因为要不停复制删除,以检测usb的性能。}

解决方案

解决方案二:
。。。。E。。。你的计算方式有问题吧。。。不带这么玩的
解决方案三:
被缓存了??
解决方案四:
可能是被windows优化了2个文件同名而且修改时间一致,直接不复制就结束了
解决方案五:
我还记得有一次跟同学互传单机版的魔兽2个多G,用QQ传,10秒不到就传了50%了结果可能是因为速率太高,QQ进程死了,重新登陆再传,一下就慢了100倍
解决方案六:
这种情况只有100M内的文件才这样,1.75g这么大的文件就不会发生这种情况。
解决方案七:
对于计算方式,哪里错了吗?
解决方案八:
我找到答案了,就是因为缓存。
解决方案九:
测速度应该每次写随机数据进去

时间: 2024-10-24 10:42:12

Winform程序,两次复制同一文件,一次速率为5M/s,一次速率高达500m/s,这是为什么?跪求大神解答的相关文章

文件写入-php用fsockopen来GET网页 就是不成功 觉得是fread那里有问题 求大神解答

问题描述 php用fsockopen来GET网页 就是不成功 觉得是fread那里有问题 求大神解答 <?php class Http { const CRLF = " "; protected $fp = null; protected $errno = -1; protected $errstr = 'error'; protected $fenxi = array(); protected $method = ''; protected $out = ''; //我觉得不需

跪求大神解答-怎样用c#的控制台应用程序做个抢红包的程序

问题描述 怎样用c#的控制台应用程序做个抢红包的程序 急!!!求大神帮帮忙,内容在图片里 解决方案 去网上下载一个,网上有这一个软件

indows编程 句柄-关于winnt.h头文件中有关句柄(HANDLE)的一段源代码的两个疑问,求大神解答。

问题描述 关于winnt.h头文件中有关句柄(HANDLE)的一段源代码的两个疑问,求大神解答. 大家好!我对winnt.h中的这段代码有疑问: #ifdef STRICT typedef void *HANDLE; #if 0 && (_MSC_VER > 1000) #define DECLARE_HANDLE(name) struct name##__; typedef struct name##__ *name #else #define DECLARE_HANDLE(nam

complex-关于c++中复数如何输出为dat文件,这个程序,如何输出,k,y[k] 急求!!!求大神解答

问题描述 关于c++中复数如何输出为dat文件,这个程序,如何输出,k,y[k] 急求!!!求大神解答 #include "math.h" #include #include #include using namespace std; void DFT(complex a[],complex b[],int N) { for (int k=0;k { b[k]=complex(0,0); for(int n=0;n { complexY = complex(0,(2*3.1415926

对象-下边是两个bean文件,应该是habnate的知识,我的问题在里边有详细说明,求大神指点

问题描述 下边是两个bean文件,应该是habnate的知识,我的问题在里边有详细说明,求大神指点 下边是两个bean文件,我是新手也不懂,但是应该是habnate的知识,建立关联的吧. 我现在要做的需求是: 合作商订单管理 里有一个是否投诉字段(下拉菜单做的):如果选"是"了,那么就再合作商管理的actiong,里 先创建一个private HeZuoShangDingDanTouSuDao dao1;然后,当合作商订单管理的对象保存之后,进行一个判断,被投诉的,我就先创建一个投诉的

实例-跪求大神啊,VB中dwgthumb控件打开DWG文件时需要设置什么参数

问题描述 跪求大神啊,VB中dwgthumb控件打开DWG文件时需要设置什么参数 VB中dwgthumb控件打开DWG文件时需要设置什么参数,用没用实例呢,谢谢啊,大神 解决方案 http://www.newxing.com/Code/VB/TXCL/dwg_462.htmlhttp://download.csdn.net/detail/dirk2212/4197363http://download.csdn.net/download/dirk2212/4198022http://www.edu

debug-VS2013下运行的MFC程序和直接从exe打开的不一样,是怎么回事,求大神解答

问题描述 VS2013下运行的MFC程序和直接从exe打开的不一样,是怎么回事,求大神解答 VS下运行时这样 然而直接从debug文件夹或者release文件夹下的exe打开是这样: 后者没有棋子,为什么会出现这种区别呢,打开的不都同一个文件吗?VS有特殊的技能? 解决方案 屏幕和资源文件的地方读取不一样 解决方案二: 恭喜.恭喜.恭喜.恭喜.

c++ mfc visual-visual studio6.0 mfc程序和控制台程序的简单问题,求大神解答

问题描述 visual studio6.0 mfc程序和控制台程序的简单问题,求大神解答 visual c++6.0中控制台程序的main函数应该放在mfc程序的哪个文件中,成员函数放在mfc的哪个文件中.

C#基于KINECT的程序求大神解答~

问题描述 求大神解答一下~如何使用C#完成基于kinect的康复系统登录界面的设计~或者可以指导一下思路~谢谢啦! 解决方案 解决方案二:kinect康复系统登录界面的设计就是Unity3D做登录界面啊解决方案三:来这里好好学习天天向上http://game.ceeger.com/forum/index.php?c=thread&fid=28解决方案四:最好下个人脸识别包kinect捕捉下就ok了界面简洁点就行解决方案五:或者基于语音解决方案六:引用1楼starfd的回复: kinect康复系统