为什么同样容量的文件、单个文件比好多碎小文件的传输速度快呢?

为什么同样容量的文件、单个文件比好多碎小文件的传输速度快呢?,第1张

===============如果“传输”指网络传输===============无论采用FTP协议、HTTP协议或是软件自定义协议传输文件,都是基于TCP,TCP协议可以用一条……咳咳,两条水管来比喻,其中一条水管一面只管灌水,一面接收水。水的流量可以很大,但水在管里流动有一定的速度,所以水从一边传到另一边有时间差。而传送大量小文件时的情况就比较复杂,要看传输文件的协议是怎么规定的,对于常见的FTP和HTTP传送大量文件时都很低效,这就像用水管每次只传一杯水,接水的一方确认收到后,再给出指令传送下一杯水,刚才说了水传输是有延时的,于是大部分时间都浪费在这种延时上,水管的流量没被充分利用。要解决这样的问题很简单,将大量文件打包成一个文件一起发送,这也是下载服务常规做法,你下载的软件安装包都是一个文件,双击运行后才解包成多个文件。===============如果“传输”指一台机内拷贝、读写文件==============机械硬盘对盘面一段连续区间的读写速度非常高,但如果在一个地方读写完后又换去别的地方读写就会造成寻道:磁头移动到下一个读写位置。系统读写单个文件一般都可以连续读写,而访问大量文件就需要频繁寻道,因为不同文件在硬盘上一般不会放在一起的。单次寻道的时间很短,大约是10毫秒级别,人一般不会察觉,但如果太频繁了就非常明显。例如一个1G大小的文件,现代硬盘可以在20秒内完成访问,但如果将1G分成10万个10k的文件,那就造成至少10万次寻道,每次寻道10毫秒,那就消耗了1000秒时间来寻道。实际应用中还复杂得多,寻道次数可能是2倍以上。即使固态硬盘没有寻道过程,对大量文件的访问仍然有一定的性能影响。例如对1G的文件读入内存,只需要简单一组CPU指令就可以让硬盘连续工作并把数据直接写入内存,而如果访问大量文件, *** 作系统发送一条传送指令后等待硬盘完成,再根据结果又执行下一条指令,大部分时间都浪费在指令延时上。如果用网络传输的文件非常多,或者网络的速度非常快,寻道延时造成的影响也会很显著。

选择要发送的文件复制;

在要发送的聊天框中黏贴文件夹,即可开始传送文件。

腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件。腾讯QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与多种通讯终端相连。目前QQ已经覆盖Microsoft Windows、OS X、Android、iOS、Windows Phone等多种主流平台。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12105227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存