拷贝猫上线

第一次拷贝:将磁盘中的数据拷贝到内核的缓冲区中第二次拷贝:内核将数据处理完,接着拷贝到用户缓冲区中第三次拷贝:此时需要通过socket将数据发送出去,将用户缓冲区中的数据拷贝至内核中socket的缓冲区中第四次拷贝:把内核中socket缓冲区的数据拷贝到网卡的缓冲区中,通过网卡将数据发送出去。

在我们的印象中,内存拷贝是一个比较重的操作,重就代表性能低。所以我们在之前的编程语言中,如果数据较大的值,在进行传参的时候建议传引用,这样会减少内存拷贝带来的性能问题。在赋值的时候也会采用写时拷贝。

减少「数据拷贝」次数:前面提到,传统的文件传输方式会历经4次数据拷贝;但很明显的可以看到:从内核的读缓冲区拷贝到用户的缓冲区和从用户的缓冲区里拷贝到socket的缓冲区」这两步是没有必要的。

4次数据拷贝两次由DMA完成拷贝,另外两次则是由CPU完成拷贝;我们只是搬运一份数据,结果却搬运了4次,过多的数据拷贝无疑会消耗额外的资源,大大降低了系统性能。

但是DMA有其局限性,DMA仅仅能用于设备之间交换数据时进行数据拷贝,但是设备内部的数据拷贝还需要CPU进行,例如CPU需要负责内核空间数据与用户空间数据之间的拷贝(内存内部的拷贝)。

  • 拷贝猫上线时间

    知乎的中国模式
    作者:网易科技专栏作家师北宸知乎于2011年1月上线,内测期间通过邀请吸引了一批IT、互联网精英人士参与,他们积极回答问题来自,接受站方鼓励用户使用实名的建议,在内测初期营造了一...
    展开阅读全文
  • 拷贝猫记录

    知乎的中国模式
    作者:网易科技专栏作家师北宸知乎于2011年1月上线,内测期间通过邀请吸引了一批IT、互联网精英人士参与,他们积极回答问题来自,接受站方鼓励用户使用实名的建议,在内测初期营造了一...
    展开阅读全文
    我在外捡了没戒奶的小猫,估计出生没多久!好可怜哦!不知怎么养,暂时在邻居那,它免免强强喝点来自豆浆
    先赞美一下你的爱心,我也是爱猫之人,以下内容不是我写的,是拷贝猫咪有从约**中的文章,你也可以去猫咪360问答有约**注册一下,然后有问题可以找大家帮忙解决,希望一下内容重走混达...
    展开阅读全文
打开APP搜你想看,本站所刊载图文之著作权归快看漫画官方和快看漫画用户所有,内含官方内容和快看社区用户编辑内容,非经本站授权许可,禁止转载。