当前位置: 首页 > news >正文

手机网站绑定域名是什么网络品牌推广方法

手机网站绑定域名是什么,网络品牌推广方法,信用徐州网站建设情况,网站开源是什么意思什么是零拷贝#xff1f; 零拷贝是一种计算机系统中的 I/O 优化技术#xff0c;它的核心思想是在数据传输过程中尽可能地减少或完全避免 CPU 将数据从一个存储区域复制到另一个存储区域的操作#xff0c;从而减少了上下文切换和 CPU 拷贝时间#xff0c;提高了系统的性能和…什么是零拷贝 零拷贝是一种计算机系统中的 I/O 优化技术它的核心思想是在数据传输过程中尽可能地减少或完全避免 CPU 将数据从一个存储区域复制到另一个存储区域的操作从而减少了上下文切换和 CPU 拷贝时间提高了系统的性能和效率。在 Java 领域诸如 Netty、Kafka、RocketMQ 等框架就使用了零拷贝技术来提高性能和效率尤其在处理大规模数据传输时表现突出。 什么是 DMA 技术 直接内存访问Direct Memory Access 技术。简单理解就是在进行 I/O 设备和内存的数据传输的时候数据搬运的工作全部交给 DMA 控制器而 CPU 不再参与任何与数据搬运相关的事情这样 CPU 就可以去处理别的事务。 传统I/O是如何操作的 read(file, tmp_buf, len); write(socket, tmp_buf, len);期间共发生了 4 次用户态与内核态的上下文切换因为发生了两次系统调用一次是 read() 一次是 write()每次系统调用都得先从用户态切换到内核态等内核完成任务后再从内核态切换回用户态。 其次还发生了 4 次数据拷贝其中两次是 DMA 的拷贝另外两次则是通过 CPU 拷贝的 第一次拷贝把磁盘上的数据拷贝到操作系统内核的缓冲区里这个拷贝的过程是通过 DMA 搬运的。第二次拷贝把内核缓冲区的数据拷贝到用户的缓冲区里于是我们应用程序就可以使用这部分数据了这个拷贝到过程是由 CPU 完成的。第三次拷贝把刚才拷贝到用户的缓冲区里的数据再拷贝到内核的 socket 的缓冲区里这个过程依然还是由 CPU 搬运的。第四次拷贝把内核的 socket 缓冲区里的数据拷贝到网卡的缓冲区里这个过程又是由 DMA 搬运的。 那零拷贝的方案有哪些呢 1、MmapWrite 在前面我们知道read() 系统调用的过程中会把内核缓冲区的数据拷贝到用户的缓冲区里于是为了减少这一步开销我们可以用 mmap() 替换 read() 系统调用函数。 buf  mmap(file, len); write(sockfd, buf, len);mmap() 系统调用函数会直接把内核缓冲区里的数据「映射」到用户空间这样操作系统内核与用户空间就不需要再进行任何的数据拷贝操作。 具体过程如下 应用进程调用了 mmap() 后DMA 会把磁盘的数据拷贝到内核的缓冲区里。接着应用进程跟操作系统内核「共享」这个缓冲区应用进程再调用 write()操作系统直接将内核缓冲区的数据拷贝到 socket 缓冲区中这一切都发生在内核态由 CPU 来搬运数据最后把内核的 socket 缓冲区里的数据拷贝到网卡的缓冲区里这个过程是由 DMA 搬运的。 我们可以得知通过使用 mmap() 来代替 read() 可以减少一次数据拷贝的过程。 但这还不是最理想的零拷贝因为仍然需要通过 CPU 把内核缓冲区的数据拷贝到 socket 缓冲区里而且仍然需要 4 次上下文切换因为系统调用还是 2 次。 2、SendFile 在 Linux 内核版本 2.1 中提供了一个专门发送文件的系统调用函数 sendfile()函数形式如下 #include sys/socket.h ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); 它的前两个参数分别是目的端和源端的文件描述符后面两个参数是源端的偏移量和复制数据的长度返回值是实际复制数据的长度。 首先它可以替代前面的 read() 和 write() 这两个系统调用这样就可以减少一次系统调用也就减少了 2 次上下文切换的开销。 其次该系统调用可以直接把内核缓冲区里的数据拷贝到 socket 缓冲区里不再拷贝到用户态这样就只有 2 次上下文切换和 3 次数据拷贝。如下图 但是这还不是真正的零拷贝技术如果网卡支持 SG-DMAThe Scatter-Gather Direct Memory Access技术和普通的 DMA 有所不同我们可以进一步减少通过 CPU 把内核缓冲区里的数据拷贝到 socket 缓冲区的过程。 具体过程如下 第一步通过 DMA 将磁盘上的数据拷贝到内核缓冲区里第二步缓冲区描述符和数据长度传到 socket 缓冲区这样网卡的 SG-DMA 控制器就可以直接将内核缓存中的数据拷贝到网卡的缓冲区里此过程不需要将数据从操作系统内核缓冲区拷贝到 socket 缓冲区中这样就减少了一次数据拷贝 这就是所谓的零拷贝Zero-copy技术因为我们没有在内存层面去拷贝数据也就是说全程没有通过 CPU 来搬运数据所有的数据都是通过 DMA 来进行传输的。 总结 I/O操作数据拷贝次数上下文切换次数传统I/O2次CPU拷贝2次DMA拷贝4MmapWrite1次CPU拷贝2次DMA拷贝4SendFile1次CPU拷贝2次DMA拷贝2SendFile 支持 SG-DMA1次DMA拷贝1次SG-DMA拷贝2 零拷贝技术的文件传输方式相比传统文件传输的方式减少了 2 次上下文切换和数据拷贝次数只需要 2 次上下文切换和数据拷贝次数就可以完成文件的传输而且 2 次的数据拷贝过程都不需要通过 CPU2 次都是由 DMA 来搬运。 所以总体来看零拷贝技术可以把文件传输的性能提高至少一倍以上。 ps以下是我整理的java面试资料感兴趣的可以看看。最后创作不易觉得写得不错的可以点点关注 链接https://www.yuque.com/u39298356/uu4hxh?# 《Java面试宝典》
http://www.w-s-a.com/news/510640/

相关文章:

  • wordpress证书关闭重庆seo优化效果好
  • 直播网站建设模板网站活动怎么做的
  • 医院网站建设网站网站开发工资高嘛
  • 个人网站备案内容写什么做网站是不是涉及很多语言职
  • 怎么用手机做一个网站门户网站建设工作的自查报告
  • 网站搭建怎么收费浙江建设集团网站
  • 建网站怎么赚钱免费引流软件下载
  • 自建网站服务器备案做基础销量的网站
  • 淘宝 网站建设 发货音乐网站首页设计
  • 丽水做网站杭州建电商网站多少钱
  • 建设网站能解决什么问题wordpress 模板 中文
  • 平台型网站建设预算表友情链接中有个网站域名过期了会影响
  • 漯河网站开发运营seo是什么意思
  • 网站建设的征求意见稿iis 网站 红
  • 网站搭建教室企业网站开发实训心得
  • 阿克苏建设网站佛山app定制
  • 做淘宝网站要求与想法大型网站建设推荐
  • 在百度做网站赚钱吗跨境电商网站开发
  • 酒店网站建设策划方案南昌网站建设南昌
  • 临沂罗庄做网站房产cms
  • 五合一网站做优化好用吗网站设计的专业流程
  • 毕业设计论文网站开发需要多少网站seo建设方案
  • h5页面用什么做杭州优化外包哪里好
  • 许昌网站建设百姓国货app下载
  • 什么是建站装修公司做宣传在哪个网站
  • 阿里云虚拟主机多个网站吗大庆油田建设集团网站
  • 坂田公司做网站公司有网站域名后如何建网站
  • 自媒体网站程序淘宝网站维护
  • 凡科网站建设网站wordpress 七牛oss
  • 搬瓦工的主机可以用来做网站吗分类信息网站开发需求方案