nginx研究之“writev函数”

简介:       nginx的高并发性能,众人皆知。如果是我们自己写的服务器软件,能做到这样的高并发吗?昨天我接着上次的代码继续读,看到源码包目录src/os/unix/ngx_writev_chain.c文件,在108行有这样一个函数,如图1: 图 1       从函数名字理解,我只知道,这个函数跟写操作有关系,类似于write函数,但是这两个的区别,我并不知道。
      nginx的高并发性能,众人皆知。如果是我们自己写的服务器软件,能做到这样的高并发吗?昨天我接着上次的代码继续读,看到源码包目录src/os/unix/ngx_writev_chain.c文件,在108行有这样一个函数,如图1:


图 1

      从函数名字理解,我只知道,这个函数跟写操作有关系,类似于write函数,但是这两个的区别,我并不知道。既然Igor Sysoev把它用在了这里,说明从性能方面考虑,它是优于write函数的。作为研究,我google,明白了write的用法,下面是一个小实例:
函数:
        ssize_t readv(int fd, const struct iovec *iov, int iovcnt);
        ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
说明:readv和writev函数用于在一次函数调用中读、写多个非连续缓冲区。

实例:
        测试文件:
        1.txt
        2.txt 
        3.txt     #文件3.txt是空的。
      
       测试程序:
     
     
编译运行:
     
分析:
     文件1.txt和文件2.txt中的内容被读到buf1、buf2缓冲区,然后writev以顺序iov[0]至iov[iovcnt-1]从缓冲区中聚集输写数据到文件3.txt,返回值为所有缓冲区长度值和,此处为18。1.txt中9个字符;2.txt中9个字符。
      
      博友学会了吗?当你自己编写软件的时候,不妨尝试着用一下。
目录
相关文章
|
11月前
|
应用服务中间件 网络安全 nginx
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
365 0
|
3月前
|
Java Serverless 应用服务中间件
Serverless 应用引擎产品使用合集之Web函数启动的Spring Boot项目可以通过什么方式配置Nginx
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
11月前
|
Java 应用服务中间件 nginx
Spring Boot 学习研究笔记(二十)-docker部署SpringBoot使用nginx配置域名
Spring Boot 学习研究笔记(二十)-docker部署SpringBoot使用nginx配置域名
282 0
|
11月前
|
负载均衡 算法 应用服务中间件
Nginx学习研究-Nginx配置详解
Nginx学习研究-Nginx配置详解
|
11月前
|
应用服务中间件 Linux nginx
Nginx学习研究-Docker安装Nginx 实现反向代理
Nginx学习研究-Docker安装Nginx 实现反向代理
191 0
|
前端开发 应用服务中间件 程序员
nginx中SSI问题的研究
nginx中SSI问题的研究
211 0
|
Web App开发 应用服务中间件 Linux
《深入理解Nginx:模块开发与架构解析》一第1章 研究Nginx前的准备工作1.1 Nginx是什么
本节书摘来自华章出版社《深入理解Nginx:模块开发与架构解析》一书中的第1章,第1.1节,作者 陶辉,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1581 0
|
1天前
|
缓存 前端开发 JavaScript
终极 Nginx 配置指南(全网最详细)
本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
136 77
终极 Nginx 配置指南(全网最详细)
|
1月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
13天前
|
应用服务中间件 nginx
一文搞定Nginx配置RTMP!
一文搞定Nginx配置RTMP!
50 3