宿迁网站制作网站空间到期提示

pingmian/2026/1/24 19:53:28/文章来源:
宿迁网站制作,网站空间到期提示,外贸网站建站要多少钱,商丘推广平台公司文章目录 什么是零拷贝3、零拷贝优化方案 - 真正的零拷贝哪些地方会用到零拷贝技术 现在来谈谈零拷贝#xff0c;以及在开发中哪些地方使用到零拷贝。 开干… 什么是零拷贝 零拷贝指的是#xff0c;从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底… 文章目录 什么是零拷贝3、零拷贝优化方案 - 真正的零拷贝哪些地方会用到零拷贝技术 现在来谈谈零拷贝以及在开发中哪些地方使用到零拷贝。 开干… 什么是零拷贝 零拷贝指的是从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底层是 通过DMA总线技术实现的。零拷贝与具体的编程语言无关完全依赖于OSOS支持就可使用不支持 设置了也不起作用。 DMADirect Memory Access直接内存访问是一种计算机系统内部的数据传输技术需要DMA总 线硬件的体系结构的硬件支持。其整个数据传输过程是在DMA控制器下完成的。 零拷贝在计算机内部数据拷贝及网络传输中都大量使用用于减少CPU消耗和内存带宽占用减少用户 空间与内核空间的拷贝过程减少用户态与内核态间的切换次数提高系统效率提升系统性能。例如 远程服务器处理客户端浏览器的主页打开请求过程就是一个零拷贝在网络传输中的典型应用。下面全 部以该场景为例进行分析。 现在我们可以看到1-2-3-4的整个过程一共经历了四次拷贝的方式**但是真正消耗资源和浪费时间的是第二次和第三次因为这两次都需要经过我们的CPU拷贝而且还需要内核态和用户态之间的来回切换。**想想看我们的CPU资源是多么宝贵要处理大量的任务。还要去拷贝大量的数据。如果能把CPU的这两次拷贝给去除掉岂不快哉既能节省CPU资源还可以避免内核态和用户态之间的切换。 这里还要先说一下用户态和内核态的区别 处于用户态执行时进程所能访问的内存空间和对象受到限制其所处于占有的处理器是可被抢占的处于内核态执行时则能访问所有的内存空间和对象且所占有的处理器是不允许被抢占的。 现在一看感觉性能资源都得到了很大的提升不过现在还不并不是完美的。因为这三次拷贝还用到了CPU的拷贝技术就是第二次。不过不要担心。Linux开发人员比我们更加深谋远虑。 3、零拷贝优化方案 - 真正的零拷贝 在Linux2.4 内核做了优化取而代之的是只包含关于数据的位置和长度的信息的描述符被追加到了socket buffer 缓冲区中。DMA引擎直接把数据从内核缓冲区传输到协议引擎protocol engine从而消除了最后一次CPU copy。经过上述过程数据只经过了2次copy就从磁盘传送出去了。这个才是真正的Zero-Copy 注意这里的零拷贝其实是根据内核状态划分的在这里没有经过CPU的拷贝数据在用户态的状态下经历了零次拷贝所以才叫做零拷贝但不是说不拷贝。 哪些地方会用到零拷贝技术 1、java的NIO 先说java是因为要给下面的netty做铺垫在 Java NIO 中的通道Channel就相当于操作系统的内核空间kernel space的缓冲区而缓冲区Buffer对应的相当于操作系统的用户空间user space中的用户缓冲区user buffer。 堆外内存DirectBuffer在使用后需要应用程序手动回收而堆内存HeapBuffer的数据在 GC 时可能会被自动回收。因此在使用 HeapBuffer 读写数据时为了避免缓冲区数据因为 GC 而丢失NIO 会先把 HeapBuffer 内部的数据拷贝到一个临时的 DirectBuffer 中的本地内存native memory这个拷贝涉及到 sun.misc.Unsafe.copyMemory() 的调用背后的实现原理与 memcpy() 类似。 最后将临时生成的 DirectBuffer 内部的数据的内存地址传给 I/O 调用函数这样就避免了再去访问 Java 对象处理 I/O 读写。 1MappedByteBuffer MappedByteBuffer 是 NIO 基于内存映射mmap这种零拷贝方式的提供的一种实现意思是把一个文件从 position 位置开始的 size 大小的区域映射为内存映像文件。这样之添加地址映射而不进行拷贝。 2DirectByteBuffer DirectByteBuffer 的对象引用位于 Java 内存模型的堆里面JVM 可以对 DirectByteBuffer 的对象进行内存分配和回收管理是 MappedByteBuffer 的具体实现类。因此同样具有零拷贝技术。 3FileChannel FileChannel 定义了 transferFrom() 和 transferTo() 两个抽象方法它通过在通道和通道之间建立连接实现数据传输的。 我们直接看Linux2.4的版本socket缓冲区做了调整DMA带收集功能。 1DMA从拷贝至内核缓冲区 2将数据的位置和长度的信息的描述符增加至内核空间(socket缓冲区) 3DMA将数据从内核拷贝至协议引擎 这个复制过程是零拷贝过程。 2、Netty Netty 中的零拷贝和上面提到的操作系统层面上的零拷贝不太一样, 我们所说的 Netty 零拷贝完全是基于Java 层面用户态的。 1Netty 通过 DefaultFileRegion 类对FileChannel 的 tranferTo() 方法进行包装相当于是间接的通过java进行零拷贝。 2我们的数据传输一般都是通过TCP/IP协议实现的在实际应用中很有可能一条完整的消息被分割为多个数据包进行网络传输而单个的数据包对你而言是没有意义的只有当这些数据包组成一条完整的消息时你才能做出正确的处理而Netty可以通过零拷贝的方式将这些数据包组合成一条完整的消息供你来使用。 此时零拷贝的作用范围仅在用户空间中。那Netty是如何实现的呢为此我们就要找到Netty进行数据传输的接口这个接口一定包含了可以实现零拷贝的功能这个接口就是ChannelBuffer。 既然有接口肯定就有实现类一个最主要的实现类是CompositeChannelBuffer这个类的主要作用是将多个ChannelBuffer组成一个虚拟的ChannelBuffer来进行操作 为什么说是虚拟的呢因为CompositeChannelBuffer并没有将多个ChannelBuffer真正的组合起来而只是保存了他们的引用这样就避免了数据的拷贝实现了Zero Copy。 3ByteBuf 可以通过 wrap 操作把字节数组、ByteBuf、ByteBuffer 包装成一个 ByteBuf 对象, 进而避免了拷贝操作 4ByteBuf 支持 slice 操作, 因此可以将 ByteBuf 分解为多个共享同一个存储区域的 ByteBuf避免了内存的拷贝 3、kafka Kafka 的索引文件使用的是 mmap write 方式数据文件使用的是 sendfile 方式。适用于系统日志消息这种高吞吐量的大块文件的数据持久化和传输。 如果有10个消费者传统方式下数据复制次数为4*1040次而使用“零拷贝技术”只需要11011次一次为从磁盘复制到页面缓存10次表示10个消费者各自读取一次页面缓存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给别人做网站被诉侵权做网站运营的女生多吗

142-常用类与基础API-String的理解与不可变性_哔哩哔哩_bilibili 1.String 2.字符串常量池 变更储存区的原因是加快被gc的频率 比地址,equals比内容 3.字符串连接 s3s4都是字符串常量,后面几个会利用StringBuilder的toString()&a…

做网站怎么查看来访ip参考消息今天新闻

这段Python代码使用了schedule库来安排一个任务,在每天的22:50时运行。这个任务执行一个命令来运行pytest,并生成一个报告。 代码开始时将job_done变量设为False,然后运行预定的任务。一旦任务完成,将job_done设置为True并跳出循…

网站建设:中企动力资阳房地产网站建设

在Go语言中进行HTTP请求时,http.Header对象表示HTTP请求或响应的头部信息。http.Header是一个map[string][]string类型的结构,用于存储键值对,其中键表示HTTP头字段的名称,值是一个字符串切片,可以存储多个相同名称的头…

网站首页界面设计网站后台 用什么编写

题目描述 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] < nums…

做网站数据需求分析dw怎么做phpcms网站

1.urllib2/urllib实现urllib2和urllib是Python中的两个内置模块&#xff0c;要实现HTTP功能&#xff0c;实现方式是以urllib2为主&#xff0c;urllib为辅。1.1首先实现一个完整的请求与响应模型urllib2提供一个基础函数urlopen&#xff0c;通过向指定的URL发出请求来获取数据。…

怎么查看网站空间大小文化传媒网站php源码

面试智力题 二进位bit1. 题目&#xff1a;一千杯水&#xff0c;一杯水有毒&#xff0c;怎么用10只老鼠&#xff0c;把这杯水找出来&#xff08;1&#xff09;解法1&#xff1a;常规法&#xff08;2&#xff09;bit法&#xff08;位数法&#xff09; (3) 时间法三级目录 二进位b…

百度建站云南服务中心抓取网站后台

直接上代码&#xff1a; 代码很简单&#xff0c;通过Post的形式提交参数&#xff0c;但是发现提交的data总是空&#xff0c;昨晚有点纳闷&#xff0c;今天一看才发现。。。 获取值得时候的顺序有问题&#xff0c;获取值应该是在onclick事件中。 综上&#xff1a;写Jquery的时间…

吉安建设公司网站wordpress配置要求

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 二.管脚分配 三.实现过程讲解及效…

重庆璧山网站制作公司电话个人可以架设网站吗

各位专业人士您好&#xff1a;我昨天使用微软官网下载的U盘安装介质制作工具制作的U盘&#xff0c;在新买的固态硬盘上安装的win10专业版。在此之后&#xff0c;经常出现程序未响应(安装驱动时几乎各个都未响应)&#xff0c;并且每次都导致系统也不响应&#xff0c;只有鼠标可以…

绵阳建设局网站营销网站建设 公司排名

框架的设计思路 首先要明确进行接口自动化需要的步骤&#xff0c;如下图所示&#xff1a; ​然后逐步拆解需要完成的工作&#xff1a; 1&#xff09;了解分析需求&#xff1a;了解接口要实现的功能 2&#xff09;数据准备&#xff1a;根据开发文档确定接口的基本情况&#x…

标志设计名词解释新网站如何做seo优化

LCS(2021牛客多校4) 题意&#xff1a; 让你构造三个字符串s1,s2,s3&#xff0c;长度均为n,要求LCS(s1,s2)a,LCS(s2,s3)b,LCS(s1,s3)c 题解&#xff1a; 先考虑三个串互相LCS为x,y,z,且x>y>z 显然如果xy-n>z则无解&#xff0c;反之xy-n<z有解 那么就先给三个串加…

协会建设网站的目的建设部设计院网站

光纤收发器&#xff0c;是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元&#xff0c;按其所需主要分为单纤光纤收发器和双纤光纤收发器&#xff0c;接下来我们就来详细介绍下什么是单模单纤/双纤光纤收发器&#xff1f;单模单纤和单模双纤光纤收…

网站如何收费通过模板做网站

文章目录 Flutter应用让屏幕在 app 运行期间保持常亮的方法方法一&#xff1a;使用系统插件方法二&#xff1a;使用 Widgets注意事项 Flutter应用让屏幕在 app 运行期间保持常亮的方法 在 Flutter 开发中&#xff0c;可以使用以下两种方法让屏幕在 app 运行期间保持常亮&#…

焦作建设网站出口企业网站建设

打开Mysql下载页面 https://downloads.mysql.com/archives/community/ 选择版本号&#xff1a; centos选择Red Hat版本&#xff0c;复制地址 复制地址后&#xff0c;链接ssh&#xff0c;添加储存库 yum install 粘贴地址&#xff1b; yum install https://downloads.mysql…

广告项目网站开发小说网站签约作者应该怎么做

Python3爬取今日头条有关《人民的名义》文章最近一直在看Python的基础语法知识&#xff0c;五一假期手痒痒想练练&#xff0c;正好《人民的名义》刚结束&#xff0c;于是决定扒一下头条上面的人名的名义文章&#xff0c;试试技术同时可以集中看一下大家的脑洞也是极好的。首先&…

企业网站怎么做产品图片轮播国外平面设计教程网站

系列文章目录 代码随想录算法训练营第一天|数组理论基础&#xff0c;704. 二分查找&#xff0c;27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

株洲专业网站建设品牌青岛做网站费用

1.简介 Apache Hadoop YARN &#xff08;Yet Another Resource Negotiator&#xff0c;另一种资源协调者&#xff09;是一种新的 Hadoop 资源管理器&#xff0c;它是一个通用资源管理系统和调度平台&#xff0c;可为上层应用提供统一的资源管理和调度。支持多个数据处理框架&…

wordpress系列教程 pdf泉州网站seo

写在前面 23年11月的时候我写过一篇记录服务器被挖矿的情况&#xff0c;点我查看。当时是在桌面看到了bash进程CPU占用异常发现了服务器被挖矿。 而过了几个月没想到又被攻击&#xff0c;这次比上次攻击手段要更高明点&#xff0c;在这记录下吧。 发现过程 服务器用的是4090…

响应式建网站重庆人才招聘网官网

1.我兄弟存在的问题 2.毛遂自荐 希尔排序提希尔(Donald Shell)于1959年提出的一种排序算法。 希尔排序&#xff0c;也称递减增量排序算法&#xff0c;是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的&…