高性能服务器编程
文章平均质量分 69
kipdoudou
奋斗在IT路上的小蜗牛。一步一步往上爬,爬到小牛,再到大牛,然后是神牛,然后是犇,然后就可以离开IT行业,回归大自然了。 远离IT,珍爱生命!!! 记录学习的点滴。
展开
-
I/O复用(select、poll、epoll模型)
I/O复用:内核一旦发现进程指定的一个/多个I/O条件就绪(输入已准备好被读取/描述符已能承接更多的输出),它就通知进程。该功能使得程序能同时监听多个文件描述符客户端:同时处理多个socket,用户输入和网络连接TCP服务器:同时处理监听socket、连接socket服务器:同时处理TCP请求、UDP请求;同时监听多个端口或处理多种服务Linux下实现I/O复用主要系统调用:select、po原创 2016-05-24 22:20:29 · 387 阅读 · 0 评论 -
epoll的LT、ET模式和EPOLLONESHOT事件实例介绍
LT、ET模式LT(Level Trigger)电平触发模式 -> 默认的, 相当于效率较高的pollepoll_wait检测到事件发生后通知了应用程序 -> 应用程序可以不立即处理该事件。下一次调用epoll_wait时,还会再次向应用程序通知此事件,直到该事件被处理ET(Edge Trigger)边沿触发模式 epoll的高效工作模式(需向epoll内核事件表中注册一fd上的EPOLLET事原创 2016-05-25 19:39:54 · 2084 阅读 · 1 评论 -
高级I/O函数(writev、senfile、dup、mmap、splice、tee)
本文总结自《Linux高性能服务器编程》中第六章pipe#include <unistd.h>int pipe(int fd[2]); //创建一管道,用于进程间通信往fd[1]写入数据,从fd[0]读出 另外:socket的基础API中有一个创建双向管道的方法:#include <sys/socket.h>int socketpair(int domain, int type, int p原创 2016-05-14 18:18:33 · 540 阅读 · 0 评论 -
用GDB调试程序
本文总结自《用GDB调试程序》一文和网上的一些博客文章,其中加上了自己的一些注释GDB概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四原创 2016-06-23 22:34:05 · 8439 阅读 · 1 评论 -
高性能I/O框架库Libevent源码学习
本文总结自《Linux高性能服务器编程》和张亮写的《Libevent源码深度剖析》及其博客http://my.csdn.net/sparkliang需要注意的是,张亮的pdf里基于的是低版本的Libevent源代码,有一些细节跟更新后的版本有出入,但是大体思路都一致。Reactor模式Reator:反应堆”,是一种事件驱动机制。应用程序提供相应的接口(“回调函数”)并注册到Reactor上,当相应的原创 2016-06-09 15:41:27 · 8060 阅读 · 0 评论 -
使用 libevent 和 libev 提高网络应用性能
转载自:http://www.ibm.com/developerworks/cn/aix/library/au-libev/简介许多服务器部署(尤其是 web 服务器部署)面对的最大问题之一是必须能够处理大量连接。无论是通过构建基于云的服务来处理网络通信流,还是把应用程序分布在 IBM Amazon EC 实例上,还是为网站提供高性能组件,都需要能够处理大量并发连接。一个好例子是,web 应用程序最转载 2016-08-31 16:35:28 · 459 阅读 · 0 评论