Linux下提高性能的系统调用sendfile,splice和tee
来源:互联网 发布:丰城生活丰城网络问政 编辑:程序博客网 时间:2024/05/29 03:02
她能把一个文件从特定部分开始的特定块通过一个socket发送出去,从而避免了多次调用read和write的内核上下文和用户上下文切换的开销,并且由于其内部实现利用了mmap技术,也减少了内存的复制开销。有了她,请问khttpd还有那么必要么?
splice和tee是2.6.17版的Linux内核首次引入的:
这两个主要用来减少管道和其他描述符之间传递数据时的read和write系统调用的数目,详细用法请查看man页,其中tee的man页中还给出了采用splice和tee重新实现的一个tee命令作为示例,如有兴趣,可查看一下。
与他们一同引入的还有vmsplice:
这个系统调用将用户空间的内存映射到内核空间,从而避免了实际的内存写操作,提高了系统效率。
不过,我并没有觉得splice,tee和vmsplice在实际的代码中很“有用”,倒是觉得如果能去除对管道的限制更好些。因为隧道型的代理服务程序,在连接建立后,剩下的主要任务就是在两个socket之间互相relay数据,如果能把他们splice起来,还是能在一定程度上提高效率的。呵呵,众口难调!
希望以上介绍对大家有益!
0 0
- Linux下提高性能的系统调用sendfile,splice和tee
- Linux下提高性能的系统调用sendfile,splice和tee
- Linux 的 splice 和sendfile系统调用
- Linux 的 splice 和sendfile系统调用
- Linux 的 splice 和sendfile系统调用
- linux的sendfile()系统调用
- linux的sendfile系统调用
- linux下系统调用sendfile()函数
- linux的sendfile()系统调用
- linux的sendfile()系统调用
- splice和sendfile
- linux的零复制splice、tee
- Linux kernel 的 sendfile 是如何提高性能的
- Linux kernel 的 sendfile 是如何提高性能的
- Linux kernel 的 sendfile 是如何提高性能的
- Linux kernel 的 sendfile 是如何提高性能的
- sendfile是如何提高性能的
- 【Linux编程】零拷贝之splice( )函数和tee( )函数
- Valid Palindrome
- Hibernate注解
- Cent OS安装Hadoop
- Spring配置事务管理,service端通过@Transactional注解
- SQL语句
- Linux下提高性能的系统调用sendfile,splice和tee
- java数组
- Winform下ToolStrip承载自定义控件或 Windows 窗体控件。
- [从头读历史] 第283节 神之物语 从克里特岛到底比斯
- UVa 247 - Calling Circles
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (二)创建你的项目
- oracle Client11G静默安装过程——linux环境
- 【Java基础知识】Java语言的运行过程
- js中所有的变量声明var当被悬置到函数的顶部