拷贝猫cos内容

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

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

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

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

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

      打开APP搜你想看,本站所刊载图文之著作权归快看漫画官方和快看漫画用户所有,内含官方内容和快看社区用户编辑内容,非经本站授权许可,禁止转载。