evpp
文章平均质量分 85
zieckey
这个作者很懒,什么都没留下…
展开
-
发布一个高性能的Reactor模式的C++网络库:evpp
发布一个高性能的Reactor模式的C++网络库。evpp是一个基于libevent开发的现代化的支持C++11特性的高性能网络库,自带TCP/UDP/HTTP等协议的异步非阻塞式的服务器和客户端库。特性如下:现代版的C++11接口非阻塞异步接口都是C++11的functional/bind形式的回调仿函数(不是libevent中的C风格的函数指针)非阻塞纯异步多线程TCP服务器/客户端原创 2017-03-19 22:50:44 · 11724 阅读 · 2 评论 -
evpp性能测试(1): 与muduo进行吞吐量测试
muduo是最近几年中国开源界里产生的优秀作品。它是由业内大牛陈硕实现的。本次测试是参考陈硕的博客文章muduo与libevent2吞吐量对比,该文章的结论是:muduo吞吐量平均比libevent2高 18% 以上。由于evpp本身是基于libevent2实现的,因此我们希望将evpp和muduo放到一起做一次全面的性能测试。本文是关于这两个库在吞吐量方面的测试。原创 2017-03-19 23:09:58 · 7532 阅读 · 2 评论 -
evpp性能测试(2): 与Boost.Asio进行吞吐量对比测试
简介Boost.Asio是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步编程模型。也是业内公认的优秀的C++网络库代表。一般来讲,其他的网络库的性能如果不能与asio做一下全面的对比和评测,就不能令人信服。原创 2017-04-04 19:44:59 · 11993 阅读 · 0 评论 -
evpp性能测试(3): 对无锁队列boost::lockfree::queue和moodycamel::ConcurrentQueue做一个性能对比测试
我们使用[https://github.com/Qihoo360/evpp]项目中的`EventLoop::QueueInLoop(...)`函数来做这个性能测试。我们通过该函数能够将一个仿函数执行体从一个线程调度到另一个线程中执行。这是一个典型的生产者和消费者问题。我们用一个队列来保存这种仿函数执行体。多个生产者线程向这个队列写入仿函数执行体,一个消费者线程从队列中取出仿函数执行体来执行。为了保证队列的线程安全原创 2017-04-09 11:11:17 · 10724 阅读 · 9 评论 -
evpp设计细节系列(1):利用 enable_shared_from_this 实现一个自管理的定时器
https://github.com/Qihoo360/evpp 项目中有一个InvokeTimer对象,接口头文件详细代码请参见https://github.com/Qihoo360/evpp/blob/master/evpp/invoke_timer.h 。它是一个能自我管理定时器类,可以将一个仿函数绑定到该定时器上,然后让该定时器自己管理并在预期的一段时间后执行该仿函数。现在我们复盘一下原创 2017-04-19 20:38:58 · 6509 阅读 · 4 评论 -
手把手制作一个vcpkg的安装包及port file相关说明
0. 前言Windows平台的程序包的依赖管理一直以来都是个大难题。之前有NuGet,现在有vcpkg。 本文的重点是先介绍一下vcpkg的特性,然后以一个实际例子说明,说明如何创建一个vcpkg安装包。1. vcpkg简介vcpkg是为了在windows平台能够方便获取一个C或者C++库。当前还处于预览版状态。不过已经有很多常见的库了,例如:opensslboostzlibglogli原创 2017-05-28 22:36:14 · 6850 阅读 · 0 评论