转自 转自 这两天想看看memcached的实现,所以先学习了libevent,使用起来还是比较简单的,其实是对select/poll/kqueue等的封装,学习libevent过程中又遇到了linux下队列的使用,简单分析如下,权当做记录: libevent中的例子中使用的是FreeBSD下的qu ...
分类:
系统相关 时间:
2018-06-26 19:30:19
阅读次数:
214
1:需要安装libevent,去http://libevent.org/下载 ,然后依次:.configure --prefix=指定安装的路径 ,make , make installlibevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接 ...
分类:
系统相关 时间:
2018-06-25 22:59:02
阅读次数:
290
简单的 http 性能测试工具 wrk.git 一个简单的 http benchmark 工具, 能做很多基本的 http 性能测试. wrk 的一个很好的特性就是能用很少的线程压出很大的并发量. 原因是它使用了一些操作系统特定的高性能 io 机制, 比如 select, epoll, kqueue ...
分类:
Web程序 时间:
2018-02-01 20:36:14
阅读次数:
325
1 wrk介绍 wrk是一款现代化的HTTP性能测试工具,即使运行在单核CPU上也能产生显著的压力。它融合了一种多线程设计,并使用了一些可扩展事件通知机制,例如epoll and kqueue。 一个可选的LuaJIT脚本能产生HTTP请求,响应处理和自定义报告,更详细的脚本内容可以参考script ...
分类:
其他好文 时间:
2018-01-28 20:52:47
阅读次数:
300
libev最大的特点是采用了轮询文件描述符(select,poll,epoll,iocp,kqueue)的方式来代替线程调度和切换,省去了线程切换,效率很高。 用小顶堆而不是链表来管理定时器,有以下优势: 1、容器中的元素实现有序排列(当然链表也能做有序排列,但性能不行,参见后面几点),这样在轮询时 ...
分类:
其他好文 时间:
2018-01-18 20:34:20
阅读次数:
194
libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述。 高性能网络编程这个话题已经被讨论烂了。异步,异步,还是异步。不管是 epoll 也好,kqueue 也罢,总是免不了异步这个话 ...
分类:
其他好文 时间:
2018-01-02 11:24:49
阅读次数:
121
Nginx 轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源 抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 , ...
分类:
Web程序 时间:
2017-11-17 11:52:06
阅读次数:
176
epoll 或者 kqueue 的原理是什么? 【转自知乎】 Epoll 引入简介 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读 ...
分类:
其他好文 时间:
2017-09-06 23:52:16
阅读次数:
194
libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述。 高性能网络编程这个话题已经被讨论烂了。异步,异步,还是异步。不管是 epoll 也好,kqueue 也罢,总是免不了异步这个话 ...
分类:
其他好文 时间:
2017-09-01 23:04:02
阅读次数:
201
adlist.c // 双向链表结构,用于定义list ae.c // 用于事件的处理 ae_epoll.c // 处理epoll事件 ae_evport.c // 通过event ports实现处理接口 ae_kqueue.c // 实现消息队列的处理 ae_select.c // 处理selec ...
分类:
其他好文 时间:
2017-08-01 19:06:06
阅读次数:
118