当前位置:主页 > 查看内容

有必要了解一下Linux中零拷贝原理 | NIO零拷贝技术实践

发布时间:2021-05-06 00:00| 位朋友查看

简介:本文导读: 什么是零拷贝 传统 IO 数据拷贝原理 什么是 DMA sendfile 数据零拷贝原理 mmap 数据零拷贝原理 Java 中 NIO 零拷贝实现 Java IO 与 NIO 实战案例分析 什么是零拷贝 关于零拷贝,WIKI 上给出的定义如下: 「Zero-copy」 describes computer operat……

 

本文导读:

  • 什么是零拷贝
  • 传统 IO 数据拷贝原理
  • 什么是 DMA
  • sendfile 数据零拷贝原理
  • mmap 数据零拷贝原理
  • Java 中 NIO 零拷贝实现
  • Java IO 与 NIO 实战案例分析

什么是零拷贝

关于零拷贝,WIKI 上给出的定义如下:

「Zero-copy」 describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. This is frequently used to save CPU cycles and memory bandwidth when transmitting a file over a network.

所谓「零拷贝」描述的是计算机操作系统当中,CPU不执行将数据从一个内存区域,拷贝到另外一个内存区域的任务。通过网络传输文件时,这样通常可以节省 CPU 周期和内存带宽。

从描述中已经了解到零拷贝技术给我们带来的好处:

1、节省了 CPU 周期,空出的 CPU 可以完成更多其他的任务

2、减少了内存区域之间数据拷贝,节省内存带宽

3、减少用户态和内核态之间数据拷贝,提升数据传输效率

4、应用零拷贝技术,减少用户态和内核态之间的上下文切换

传统 IO 数据拷贝原理

在正式分析零拷贝机制原理之前,我们先来看下传统 IO 在数据拷贝的基本原理,从数据拷贝 (I/O 拷贝) 的次数以及上下文切换的次数进行对比分析。

传统 IO:

有必要了解一下Linux中零拷贝原理 | NIO零拷贝技术实践


本文转载自网络,原文链接:https://m.toutiaocdn.com/group/6746056891136213515/?app=news_article×tamp=1582884537&req_id=20200228180856010014063145010F141E&group_id=6746056891136213515&tt_from=weixin&utm_source=weixin&utm_me
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:搞懂这些Redis知识点,吊打面试官! 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐