`
febird
  • 浏览: 256202 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

asio/ACE/apr/libevent

阅读更多

整体感觉:ACE太庞大,asio 太赶时髦。

ACE太过庞大,使得你即便是只使用它的一小部分,也不得不引用它的全部。而且框架一大堆,模式一个加一个,很多编程习惯也要改变。学习曲线太陡,也难以将它作为一个模块集成自己的应用。

asio呢,有个牛大大说它是现时代的ACE,我觉得比较中肯。用bind做回调也并不比虚函数好,看上去灵活了,代价却更高了。我说的不光是运行时的内存和时间代价,更重要的编译时间难以忍受。

apr大约只是一个平台无关的api封装,相对来说比较轻量级。

libevent就更轻量级了,轻量级到无法把它当成一个平台无关的socket,还要写很多平台相关的代码。

相比而下,我觉得apr还好点,其实我需要的只是一个机制,而不是一个完整的策略,这是unix的哲学。如果仅就异步通讯来说,我觉得linux.epoll是最好的,简单、直接、有效,如果在每个平台上都有epoll可用,所有其它封装在我看来都是多余的了。

proactor真的就比reactor高效吗?它更多的是一种策略,据说Windows的操作系统级IOCP是用线程池实现的,它能高效到哪里去?

 

分享到:
评论
1 楼 sunzixun 2010-05-17  
很有见解

ace也可以精简的,我们就用阉割版的 

相关推荐

    Asio作者介绍C++中的网络库Networking TS

    这篇文档(P2469r0)是对P2464论文的回应,旨在澄清关于Networking TS(也称为Asio/Net.TS)异步模型的一些误解,并指出它与P2300 Sender/Receiver之间的关系。以下是关键知识点的详细阐述: 1. **执行器(Executor)...

    基于 Boost.asio 的 Redis 客户端库 .zip

    获取/设置示例#include <string>#include <vector>#include <iostream>#include <boost/asio/io_service.hpp>#include <boost/asio/ip/address.hpp>#include <redisclient/redissyncclient.h>int main(int, char **)...

    基于boost asio TCP/SSL 网络库

    **基于Boost.Asio的TCP/SSL网络库** Boost.Asio是一个强大的C++库,用于处理I/O操作,如网络通信。在标题中提到的“基于boost asio TCP/SSL网络库”是一个利用Boost.Asio实现的,具备TCP和SSL功能的网络库。这个库...

    asio客户/服务器聊天程序

    Asio是Boost库的一部分,全称为"Async Input/Output",是一个用于跨平台网络和低级I/O操作的库。它提供了异步编程模型,使得开发者可以编写高性能、非阻塞的网络应用。Asio的设计目标是简洁、高效且易于使用,支持...

    ASIO4ALL_v2中文手册

    ASIO4ALL_v2 是一款通用的 ASIO 驱动程序,能够适应于 WDM 音频设备,本手册旨在帮助用户充分使用已安装的 ASIO4ALL,介绍最新加入到这个 ASIO4ALL 版本中的高级功能。 入门指南: 在使用 ASIO4ALL 之前,需要对...

    基于boost.asio库的windows C++ https/ssl server client 含完整boost和openssl库 编译环境 测试证书

    基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的windows VS编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需linux版本,和自己...

    C++ 之 Asio 库(全面解析)

    Asio 是一个跨平台的 C++ 库,常用于网络编程、底层的 I/O 编程等 (low-level I/O),其结构框架如下: 2 使用 Asio 2.1 下载 Asio 库分为 Boost 版和 non-Boost 版,后者的下载地址为: http://think-async.com/ ...

    LabVIEW调用ASIO声卡驱动

    对于“asio4all”标签,这是一个通用的ASIO驱动程序,适用于不支持ASIO的声卡,或者用户希望统一管理多个ASIO设备的情况。asio4all提供了对多种硬件的兼容性,使得在LabVIEW中实现ASIO功能变得更加便捷。 总结来说...

    foorbar2000 0.8.2/0.8.3 ASIO插件

    ASIO Output Plug-in for Foorbar 是可以让 Foorbar 0.8.X 支持 ASIO 的输出插件,需要注意的是使用该插件前必须确认你的声卡驱动支持ASIO。 使用说明: 解压缩,释放到 Foorbar 的 components 文件夹内。然后...

    基于boost.asio库的C++http/https web server

    Boost.ASIO库是Boost库的一部分,它提供了异步I/O操作,使得处理网络通信变得更加高效。在这个项目中,我们看到一个使用Boost.ASIO实现的Web服务器,它同时支持HTTP和HTTPS协议,这对于创建安全的Web服务至关重要。 ...

    st_asio_wrapper——一组包装boost.asio的c/s框架(2.2版)

    st_asio_wrapper是一组类,功能是对boost.asio的包装(调试环境:boost-1.51.0),目的是简化boost.asio开发; 其特点是效率高、跨平台、完全异步,当然这是从boost.asio继承而来; 自动重连,数据透明传输,自动...

    asio-1.4.1 源代码

    1. `include/asio/`:包含所有的头文件,如`asio.hpp`,这是ASIO的主要入口点。 2. `src/`:包含了库的实现代码,包括了异步操作的处理逻辑和对操作系统API的封装。 3. `examples/`:提供了一系列示例程序,展示了...

    asio-1.10,2

    - `include/asio/`:包含ASIO的头文件,开发者需要将这个目录包含在编译路径中。 - `example/`:示例代码,展示了如何使用ASIO库进行网络编程和其他I/O操作。 - `doc/`:可能包含库的文档,帮助开发者了解如何使用...

    libevent vs2013工程以及demo

    Libevent 还提供了 ASIO 模块,它是 Boost.ASIO 库的一个轻量级实现,用于处理异步 I/O。ASIO 支持 TCP、UDP 和 UNIX 域套接字,以及 SSL 安全传输。在 Libevent 中,ASIO 模块可以提供更高级别的抽象,简化异步编程...

    st_asio_wrapper一组包装boost.asio的c/s框架(2.3版)

    st_asio_wrapper是一组类库,功能是对boost.asio的包装(调试环境:boost-1.51.0),目的是简化boost.asio开发; 其特点是效率高、跨平台、完全异步(当然这是从boost.asio继承而来)、自动重连,数据透明传输,自动...

    LRDB:Lua远程调试器

    Lua远程调试器 在许可下 介绍 LRDB是Lua编程语言的调试器。 Currentry调试客户端仅是。...带有-DLRDB_USE_BOOST_ASIO的LRDB / third_party / asio / asio / include或boost.asio LRDB / third_party / pic

    asio驱动正确安装和注册

    多出的 asio 子菜单添加asio 设置界面选择 ASIO:usb-audio.de ASIO driver 输出 9. 运行 foobar,进入参数选项,如果添加成功,在输出项右边下拉菜单就会多出 ASIO:usb-audio.de ASIO driver 选项,选上,再次...

    boost.asio.ssl示例的证书

    #include <boost/asio/ssl.hpp> int main() { boost::asio::io_service io_service; boost::asio::ssl::context ctx(boost::asio::ssl::context::tlsv12_server); ctx.use_certificate_chain_file("server.pem...

    asio4all.rar_ASIO4ALL_ASIO驱动_asio c++_asio4all DLL_asio4all.d

    标题中的“asio4all.rar”是一个压缩包,包含了ASIO4ALL的主要组件,即“asio4all.dll”,这是一个动态链接库文件,用于在Windows操作系统中实现ASIO驱动功能。 ASIO(Audio Stream Input/Output)是Steinberg公司...

Global site tag (gtag.js) - Google Analytics