zoukankan      html  css  js  c++  java
  • sendfile复习

    之前有一篇文章:

    http://www.cnblogs.com/charlesblc/p/6341605.html

    今天又看到其他的一篇:

    http://www.cnblogs.com/fengyv/p/3775953.html

    补充一下:

    运行流程如下:
    1、sendfile系统调用,文件数据被copy至内核缓冲区
    2、再从内核缓冲区copy至内核中socket相关的缓冲区
    3、最后再socket相关的缓冲区copy到协议引擎

    相较传统read/write方式,2.1版本内核引进的sendfile已经减少了内核缓冲区到user缓冲区,再由user缓冲区到socket相关 缓冲区的文件copy,而在内核版本2.4之后,文件描述符结果被改变,sendfile实现了更简单的方式,系统调用方式仍然一样,细节与2.1版本的 不同之处在于,当文件数据被复制到内核缓冲区时,不再将所有数据copy到socket相关的缓冲区,而是仅仅将记录数据位置和长度相关的数据保存到 socket相关的缓存,而实际数据将由DMA模块直接发送到协议引擎,再次减少了一次copy操作

  • 相关阅读:
    (8)FastDFS
    (7)文件上传
    (6)品牌新增
    数据仓库_MySQL(2)
    数据仓库_Linux(5)&MySQL(1)
    J哥说生产事故之僵尸进程
    J哥说生产事故之CPU爆表
    idea classpath
    (五)返回两个数组之间的差异
    (四)数组扁平化
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6485175.html
Copyright © 2011-2022 走看看